Доброго времени суток, господа.
Возникла следующая проблема: нужно при добавлении новой ноды своим обработчиком проверять некоторые условия и, при выполнении этих условий, сохранять ноду.
Но добавить свой обработчик вместо основного не удается.
В своем модуле реализовал хук (в примере назовем модуль - mymodule, тип ноды - mytype):
<?php
function mymodule_form_alter(&$form, &$form_state, $form_id) {
if (
$form_id == 'mytype_node_form') {
if(($key = array_search('mytype_node_form_submit', $form['#submit']))){
$form['#submit'][$key] = 'mymodule_mysubmit';
}
}
}
?>
Второй if не выполняется, а без него...
<?php
function mymodule_form_alter(&$form, &$form_state, $form_id) {
if (
$form_id == 'mytype_node_form') {
$key = array_search('mytype_node_form_submit', $form['#submit']);
$form['#submit'][$key] = 'mymodule_mysubmit';
}
}
?>
...обработчик просто добавляется к основному, т.е. выполняется функция mymodule_submit + автоматически сохраняется нода.
Что я делаю не так?
Комментарии
так Вам нужен не submit, а validate
Не могли бы Вы немного пояснить?
При нажатии кнопки ведь, простыми словами, должен вызываться submit обработчик.
boatsman, спасибо, разобрался.
Правда, сразу отписаться здесь не смог.
Вы один из тех людей, которым я очень люблю помогать, задал человеку вектор - сам разобрался. Молодец!
С данной CMS только знакомлюсь, поэтому возникают, возможно, и глупые вопросы, на которые поиск не всегда дает адекватных ответов.
Поэтому получить верное направление для поисков - самое то ))
Еще раз спасибо.