Есть нода, есть пользователь, который по правам доступа имеет право ее удалить. В ноде есть поле ССК, значение которого может либо разрешать, либо запрещать данную операцию. Как сделать проверку этого поля непосредственно перед удалением, после нажатия пользователем на кнопку "Удалить", перед подтверждением необратимого действия? Возможно потребуется не полный запрет, а дополнительное предупреждение, но это если понять как делать в принципе уже не сложно дальше разобраться.
Посмотрел nodeapi операцию delete но он отрабатывает после удаления ноды, а необходимо сделать перехват перед удалением - как?
Заранее спасибо за ответ!
Комментарии
операция validate вроде должна быть до удаления
а как отслеживать до сохранения она или перед удалением? Что то я с ней не до конца смог разобраться
Смотрите в параметре a3 массив с формой. Там можно определить какая операция выполняется.
http://api.drupal.ru/api/function/hook_nodeapi
Возможно, Вам лучше все таки использовать [ru-api=hook_form_alter]hook_form_alter[/ru-api].
Спасибо! Этого не знал.
Это естественно читал, хотелось бы подробнее. Из данного описания даже непонятно что validate выполняется перед удалением.
Не понял.
" hook_form_alter ...Позволяет вносить изменения в форму перед её показом." Как это связано с поставленной задачей? Если имеется в виду убирание кнопки "удалить", то данный вариант меня не устраивает.
И еще возник вопрос - правильно ли я понимаю, что validate не выполняется перед удалением при использовании функции node_delete в тексте собственного модуля, а так же при удалении на странице admin/content/node ? Тогда похоже вариант с validate тоже является полурешением.
Ну дак, это всё легко выяснить самостоятельно.
Вставьте в хук drupal_set_message($op); и смотрите в каком порядке выполняются операции.
Не обязательно удалять. Можно деактивировать, или отображать JS alert при нажатии кнопки "удалить". Много чего можно сделать, все зависит от конкретной задачи. Должна выполнятся. И кстати какая трудность это проверить?