You are here

触发器模块是如何准备上下文的

老葛的Drupal培训班 Think in Drupal

让我们设定一个场景。假定你有一个网站,是用来呈现争议性问题的。下面是它的业务模型:用户通过付费注册进来,并只能在网站上发布一条评论。一旦他们发布了评论,他们就会被封号,直到再次付费后才被解封。我们不关心这样的网站是否有经济前景,这里主要考虑的是:如何使用触发器和动作来实现它。我们需要一个动作来阻止当前用户。检查一下user.module,我们看到Drupal已经为我们提供了这个动作:
 
/**
* Implementation of hook_action_info().
*/
function user_action_info() {
    return array(
        'user_block_user_action' => array(
            'description' => t('Block current user'),
            'type' => 'user',
            'configurable' => FALSE,
            'hooks' => array(),
        ),
        'user_block_ip_action' => array(
            'description' => t('Ban IP address of current user'),
            'type' => 'user',
            'configurable' => FALSE,
            'hooks' => array(),
        ),
    );
}
 
    然而,这些动作却没有显示在触发器分配页面,为什么呢?这是因为它们的hooks键是一个空数组,也就是它们不支持任何钩子。如果我们能只改一下hooks键,那不就可以了?不错,可以这样做,让我们往下看。

Drupal版本: