Как установить таймаут редактирования ноды?

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

Аватар пользователя direqtor direqtor 21 февраля 2011 в 19:15

Потребовался тут такой нехитрый функционал. Пользователь добавляет ноду и в течение некоторого заданного времени может редактировать её. По истечении этого времени доступ к редактированию ноды отменяется.

Поискал готовые решения по словам node edit expire timeout...

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

Комментарии

Аватар пользователя Обухов Никита Обухов Никита 21 февраля 2011 в 21:03

Да че пичалиться, пара строк нужна.

<?php
hook_form_alter
() {
  if (
$form_id == 'yourtype_node_form') {
   
$node $form['#node'];
   if (isset(
$node->nid) && $node->uid == $GLOBALS['user']->uid) {
    if (
time() - $node->created 24 3600) {
      
drupal_set_message('Oh shi''error');
      
$form['#access'] = false;
    }
   }
  }
}
?>
Аватар пользователя Crea Crea 22 февраля 2011 в 13:30

RxB wrote:
"Обухов Никита" wrote:
Да че пичалиться, пара строк нужна.

Хм.
Тоже можно, но всё ж menu_alter() идеалогически правильней

Идеологически правильно написать свой node access модуль, например на основе модуля ACL. А вот menu_alter() - ересь, ибо это не ограничение доступа к ноде, а ограничение доступа к странице.