16 field_validation.rules.inc

作者:老葛,北京亚艾元软件有限责任公司,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


Drupal版本: