作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
这是field_validation.rules.inc文件的:
<?php
/**
* @file
* provides API and management functions for the field validation rules
*/
/**
* Get a rule entry
*/
function field_validation_get_rule($ruleid) {
$result = db_query("SELECT * FROM {field_validation_rule} WHERE ruleid = :ruleid", array(':ruleid' => $ruleid), array('fetch' => PDO::FETCH_ASSOC));
$rule = $result->fetchAssoc();
return $rule;
}
/**
* Get an array of rules assigned to a field instance
*/
function field_validation_get_field_rules($instance) {
$rules = array();
$bundle = $instance['bundle'];
$entity_type = $instance['entity_type'];
$field_name = $instance['field_name'];
$sql = "SELECT * FROM {field_validation_rule} WHERE field_name = :field_name AND entity_type = :entity_type AND bundle = :bundle ORDER BY ruleid DESC";
$result = db_query($sql, array(':field_name' => $field_name, ':entity_type' => $entity_type, ':bundle' => $bundle), array('fetch' => PDO::FETCH_ASSOC));
foreach ($result as $rule) {
$rules[$rule['ruleid']] = $rule;
}
return $rules;
}
/**
* Get an array of rules assigned to a field instance
*/
function field_validation_get_bundle_rules($entity_type, $bundle) {
$rules = array();
$sql = "SELECT * FROM {field_validation_rule} WHERE entity_type = :entity_type AND bundle = :bundle ORDER BY ruleid DESC";
$result = db_query($sql, array(':entity_type' => $entity_type, ':bundle' => $bundle), array('fetch' => PDO::FETCH_ASSOC));
foreach ($result as $rule) {
$rules[$rule['ruleid']] = $rule;
}
return $rules;
}
/**
……
*/
function field_validation_rule_components_basic($components) {
……
}
/**
* Delete a rule and dependencies
*/
function field_dynamic_delete_rule($ruleid) {
// delete rule
db_delete('field_validation_rule')
->condition('ruleid', $ruleid)
->execute();
}
这个文件里面主要包含了有关验证规则API函数,比如删除规则field_dynamic_delete_rule,获取一个规则field_validation_get_rule,获取一个字段上的规则field_validation_get_field_rules,获取一个bundle上面的规则field_validation_get_bundle_rules。
这里的field_validation_rule_components_basic是复制过来的,这里应该没有什么用处。
这里的代码没有什么特别的,主要就是数据库的查询操作,看看这里的代码或许对于熟悉Drupal7下面的数据库操作有点帮助,不过这里的查询方式都是最原始的db_query。在后面的项目中,我更倾向于使用EntityFieldQuery。