17 field_validation.admin.inc
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
这是field_validation.admin.inc文件的:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
这是field_validation.admin.inc文件的:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
这是field_validation.rules.inc文件的:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
函数field_validation_get_validators用来获取所有的字段验证器,这里再次使用了module_invoke_all,hook_field_validation_validators就是在这里定义的,这里还使用了:
drupal_alter('field_validator', $validators);
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
field_validation_field_validation_validate这也是一个钩子函数的实现,。这里面包含了验证器的验证规则。当传递过来的数据没有通过正则验证时,我们返回一个包含错误信息的数组。这个错误消息,应该通过引用传递的,但是module_invoke_all不支持引用传递。所以只好这样变通一下
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
field_validation_field_validation_validators是一个钩子函数,实现的就是我们自己定义的钩子hook_field_validation_validators,它类似于hook_menu,返回的是一个数组,在这个数组里面,可以定义多个验证器,我们这里只定义了一个regex,正则表达式。在单个验证器数组里面,它包含5个键,name、component_types、custom_error、custom_data、description。都是直接来自于webform_validation
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
这是field_validation.validators.inc文件的:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
field_validation_field_delete是hook_field_delete的钩子实现,这段代码的作用是,当删除一个字段时,删除字段上面的验证规则。这里面用到的field_dynamic_delete_rule函数,命名不符合Drupal的规范,最好命名为field_validation_dynamic_delete_rule。field_validation_field_delete和field_dynamic_delete_rule的名字也都是来源于webform_validation的。在webform_validation里面,使用的钩子函数是hook_node_delete,当一个节点被删除时,删除节点上面的验证规则,其实我觉得webform_validation里面应该检查一下这个节点的类型是不是webform形式的,不是的话直接跳过,这样效率会更高一点。