提供新的实体令牌:增强规则框架的灵活性
1. 引言
在Drupal规则框架中,实体令牌提供了一种在规则(以及其他模块)中使用占位符,并动态地用数据块替换它们的方法。这不仅增加了规则的灵活性,还能显著简化复杂规则的配置。本文将详细讲解如何为规则提供新的实体令牌,包括实现钩子、定义回调函数以及在规则配置中使用新令牌的具体步骤。
2. 实现 hook_entity_property_info()
为了向规则框架提供新的实体令牌,首先需要实现 hook_entity_property_info()
。这个钩子允许我们扩展原生可用的属性,并为新实体定义新的属性标识符。下面是一个具体的实现示例:
/**
* 实现 hook_entity_property_info()
* 我们扩展了原生可用的 '网站' 属性
*/
function custom_entity_property_info() {
$info = array();
$properties =& $info['网站']['属性'];
$properties['注册_用户'] = array(
'label' => t("注册用户数量"),
'type' => 'integer',
'description' => t("返回网站当前注册用户数量。"),
'getter callback' => 'custom_number_of_users'
);
r