如何在Drupal中添加自定义规则“动作”?

时间:2015-11-12 12:29:19

标签: drupal drupal-7 drupal-modules drupal-rules

我正在使用Drupal 7中的Rules模块,我尝试添加新规则“Action”

我按照How to create an custom rule action using hook_rules_action_info?中描述的步骤使用hook_rules_action_info创建自定义规则操作:

  • 我尝试在文件夹(save_nid.rules.inc)中创建示例文件/rules/module/
  • 我还尝试在module中创建/site/all/module/save_nid/文件夹。

save_nid.rules.inc中的代码如下:

  function rules_save_nid_action_info() {
      return array(
      'save_nid_action' => array(
        'label' => t('Custom Action'),
        'parameter' => array(
          'param1' => array(
            'type' => 'int',
            'label' => t('Parameter Label'),
          ),
          'param2' => array(
            'type' => 'commerce_order',
            'label' => t('Parameter Label2'),
          ),
        ),
        'configurable' => FALSE,
        'group' => t('ABC Custom module action'),
        'callbacks' => array(
          'execute' => 'abc_custom_action',
        ),
      ),
  }

清除了Drupal缓存后,我没有在列表中看到我的“自定义规则”。

我错过了什么或做错了什么?

1 个答案:

答案 0 :(得分:1)

在您的情况下,自定义模块的计算机名称似乎为save_nid

因此,如果您想在模块中使用hook_rules_action_info,则需要将您的函数命名为save_nid_rules_action_info,而不是rules_save_nid_action_info

不确定这是否是“唯一”问题,为什么你无法让它工作,但至少这是你需要解决的“问题”。

PS:确保将自定义编码保存在自定义模块的文件夹中(/site/all/module/save_nid/)。