Потребовался тут такой нехитрый функционал. Пользователь добавляет ноду и в течение некоторого заданного времени может редактировать её. По истечении этого времени доступ к редактированию ноды отменяется.
Поискал готовые решения по словам node edit expire timeout...
Полдня пытался поженить Node Expire, Rules и Actions, казалось бы оно. Не вышло. Видимо, я не уловил сакрального смысла функций этих модулей. В общем-то, в мозгах уже сложился проект простенького модуля для решения этой проблемы. Но если кто-то уже решал её штатными методами, подскажите, куда рыть? Функционал-то распространенный...
Комментарии
интересно
menu_alter, влазим в access callback, так как сие массив, добавляем туда свою функцию для лимита по времени, как-то так. по идее
А готовых модулей нет? Или настроек того зоопарка, что я привел?
Насчёт готовых не скажу, не интересовался этим вопросом
Тогда с утра придется писать кастомный модуль. В пичальке я...
Да че пичалиться, пара строк нужна.
<?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;
}
}
}
}?>
Хм.
Тоже можно, но всё ж menu_alter() идеалогически правильней
Идеологически правильно написать свой node access модуль, например на основе модуля ACL. А вот menu_alter() - ересь, ибо это не ограничение доступа к ноде, а ограничение доступа к странице.
Ну, форму редактирования можно выводить не только по адресу node/edit
Ещё подумалось, а в рулезах нет такого функционала?
глянь мало ли раз раз к этому что у тебя
два два
в довесок
тры тры