[РЕШЕНО]Разрешить только автору ноды добавлять комментарии к ней

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

Аватар пользователя HarryAscent HarryAscent 6 августа 2013 в 11:43

Привет всем, я хочу сделать возможность подписки на новости внутри ноды, нода - это ремонтная бригада которая добавляет новости. Я решил сделать с помощью комментариев т.к. флаг в этом случае не подошел. Всё казалось бы хорошо, можно добавить нужные мне поля в форму комментариев и установить модуль Node notify который и даст возможность подписки на ноду. Но тут вопрос я даю возможность добавлять комментарий не автору ноды а целой роли, а мне необходимо ограничить добавление комментария и сделать возможно добавления только автору ноды. анонимы и все остальные могут только просматривать и подписываться.

Комментарии

Аватар пользователя webpavilion webpavilion 6 августа 2013 в 13:22

Через hook_form_alter добавить валидатор и скрыть форму если её смотрит не автор ноды (оставить только подписку), в валидаторе тоже самое если не автор то постить нельзя, можно только подписаться.

Аватар пользователя HarryAscent HarryAscent 7 августа 2013 в 15:20

Решил по принципу как выше в комменте описано:

<?php
function comment_author_form_comment_form_alter(&$form, &$form_state, &$form_id){
//dsm($form);
 global $user;
 //dsm($user);
   if ($form['#node']->uid != $user->uid && $user->uid != 1) {
    // Form alter here to unset comment form
    $form['#access'] = FALSE;
        }
  }?>
Аватар пользователя HarryAscent HarryAscent 8 августа 2013 в 0:27

"Timurbek" wrote:
добавить нужные мне поля в форму - как реализовали?

На странице типа материала есть вкладки Поля комментариев, Отображения комментариев. По умолчанию уже можно

Аватар пользователя Pilotsamoleta Pilotsamoleta 10 октября 2013 в 21:07

сделал модуль, добавил этот код НО НЕ ЗАРАБОТАЛО. Только мне надо наоборот - запретить комментировать свою ноду.

Аватар пользователя HarryAscent HarryAscent 11 октября 2013 в 12:43

Pilotsamoleta wrote:
сделал модуль, добавил этот код НО НЕ ЗАРАБОТАЛО. Только мне надо наоборот - запретить комментировать свою ноду.

<?php
function comment_author_form_comment_form_alter(&$form, &$form_state, &$form_id){
//dsm($form);
global $user;
//dsm($user);
if ($form['#node']->uid == $user->uid && $user->uid != 1) {
// Form alter here to unset comment form
$form['#access'] = FALSE;
}
}?>
в вашем случае так должно быть, проверка если юзер автор ноды тогда ему скрывается форма комментирования

Аватар пользователя drupby drupby 11 октября 2013 в 13:09

"iNFerNo" wrote:
это название модуля или тут еще название формы комментов спряталось7

ну так hook_form_FORMID_alter