You are here

3 如何加载一个Ctools插件

admin 的头像
Submitted by admin on 星期一, 2015-09-21 01:37

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

module文件中,还有一个函数field_validation_ctools_plugin_api,这个前面已经讲过了,field_validation.default_field_validation_rules.inc文件和前面所讲的一样。我把UI部分独立了出来,前期只实现了基于Ctools的导出UI,这个足够了,代码和前面的类似,所不同的是,plugins\export_ui下面field_validation_export_ui.inc文件的代码更简单一些,这里纯粹是为了测试我的想法是不是行得通,所以省去了很多功能。

 

最后,我们看看插件的调用,下面的代码用来加载一个字段验证器:

  ctools_include('plugins');

  $plugin = ctools_get_plugins('field_validation', 'validator', $rule->validator);

  $class = ctools_plugin_get_class($plugin, 'handler');

  if(empty($class)){

    continue;

  }

  if (!is_subclass_of($rule->validator, 'field_validation_validator')) {

    drupal_set_message(t("Plugin '@validator' should extends 'field_validation_validator'.", array('@validator' => $rule->validator)));

    continue;

  }

   下面的代码,实例化字段验证器,验证。

$validator = new $class($entity_type, $entity, $field, $instance, $langcode, $items, $delta, $item, $rule, $errors);

$break = $validator->validate();


Drupal版本: