Ошибка 500 при срабатывании триггера после добавления комментария

Главные вкладки

Комментарии

Аватар пользователя Ветер Ветер 18 апреля 2013 в 14:50

Делаем действие - Снимать комментарий содержащий слова... - Включаем это в триггер "после создания комментария "

Аватар пользователя Osim Osim 27 апреля 2013 в 21:18

Fatal error: Cannot use object of type stdClass as array in C:\apache\localhost\www\includes\common.inc on line 5816

Тоже самое! Кто нибудь решил как это исправить?

Аватар пользователя Alexitdv Alexitdv 9 августа 2013 в 21:05

Мучился и помощи в инете не нашел. Пришлось дебажить ручками. Чтобы другие не мучились выкладываю сюда.

Оригинальная функция

<?php
function comment_unpublish_by_keyword_action($comment$context) {
  foreach (
$context['keywords'] as $keyword) {
    
$text drupal_render($comment);
    if (
strpos($text$keyword) !== FALSE) {
      
$comment->status COMMENT_NOT_PUBLISHED;
      
watchdog('action''Unpublished comment %subject.', array('%subject' => $comment->subject));
      break;
    }
  }
}
?>

Поправленная

<?php
function comment_unpublish_by_keyword_action($comment$context) {
  foreach (
$context['keywords'] as $keyword) {
    
$render comment_view($commentnode_load($comment->nid));
    
$text drupal_render($render);
    if (
strpos($text$keyword) !== FALSE) {
      
$comment->status COMMENT_NOT_PUBLISHED;
      
watchdog('action''Unpublished comment %subject.', array('%subject' => $comment->subject));
      break;
    }
  }
}
?>

Нужно
В строке 2619 файла comment.module

Заменить строку

<?php
$text 
drupal_render($comment);
?>

На

<?php
$render 
comment_view($commentnode_load($comment->nid));
$text drupal_render($render);
?>

И будет счастье