hook_comment不适用于drupal中的更新操作

时间:2013-04-08 14:53:26

标签: drupal-6 comments

我想在drupal 6中保存或更新之前修改评论正文。我正在尝试使用以下代码:

function mymodule_comment(&$a1, $op) {
switch ($op) {
    case 'insert':
    case 'update':
             $a1['comment'] = myfunction($a1['comment']);
        break;

}

}

但是保存后它没有更新评论正文。我也尝试了以下代码,它可以工作:

function mymodule_comment(&$a1, $op) {
switch ($op) {
    case 'insert':
            $a1['comment'] = myfunction($a1['comment']);
            comment_save($a1);
        break;

}

}

但是在更新的情况下,它显示错误:

function mymodule_comment(&$a1, $op) {
switch ($op) {
    case 'update':
             $a1['comment'] = myfunction($a1['comment']);
             comment_save($a1); 
        break;

}

}

非常感谢任何想法或帮助。

1 个答案:

答案 0 :(得分:0)

好的,我得到了解决方法。首先创建一个hook_form_alter函数:

mymodule_form_alter($form,$form_state,$form_id){
       if ($form_id == 'comment_form') {
    $form['#submit'][] = 'mymodule_comment_form_submit';
   }
 }

然后创建hook_comment_form_submit函数并进行修改:

mymodule_comment_form_submit($form, $form_state){
     $form_state['values']['comment'] = myfunciton($form_state['values']);
 comment_save($form_state['values']); 
}

我不知道这是不是一个好主意,但我发现使用这种方法的帖子很少。