2.4 定义一个具体的插件field_validation_min_length_validator
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
打开plugins\validator这个目录,我们看到这里定义了一个简单的验证器field_validation_min_length_validator。我们打开这个文件:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
打开plugins\validator这个目录,我们看到这里定义了一个简单的验证器field_validation_min_length_validator。我们打开这个文件:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们来看一下field_validation_validator文件,这是一个抽象类,其它的字段验证器都继承自这个类。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
再来看module文件,不足100行的代码
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
/**
* Implements hook_schema().
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
实现了验证规则的导出以后,我对Ctools的理解又加深了一步,想着自己能够基于Ctools实现导出功能,一定也能够实现插件形式的验证器。这个想法酝酿了很久了,直到有一天,我看到了这篇文章http://www.ygerasimov.com/ctools-plugins-system,写的很详细。我之所以能够找到这篇文章,就是因为我有这个想法,我把Ctools的相关文档看了几遍,看了几个基于Ctools插件系统的模块,比如Feeds模块。最后找到了这篇文章。这是services模块的一个维护者,所写的文章,services模块也是基于Ctools插件系统的。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
再往下,就是在field_validation\plugins\export_ui里面创建field_validation_export_ui.inc文件,这里的代码有点长:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们获取验证规则的代码也需要相应的调整。我们来看一个根据机读名字加载验证规则的API函数:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
在module文件中,我们添加了以下代码: