0

我正在尝试在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;

}

}

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

4

1 回答 1

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']); 
}

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

于 2013-04-09T05:51:10.133 回答