Модифицирую форму через hook_form_alter(). Пытаюсь убрать с неё все настройки:
<?php
unset($form['revision_information']);
unset($form['comment_settings']);
unset($form['options']);
unset($form['author']);
unset($form['menu']);
unset($form['additional_settings']);
unset($form['path']);
?>
Всё удаляется кроме "Настройки адресов". Смотрел через print_r($form) массив, но там даже нет такого элемента, как path. В чём может быть причина?
Комментарии
А в самой форме он есть?
Как я вижу, модулем node он не предоставляется. Зато, по-видимому, предоставляется модулем path. Не помню, навскидку синтаксис, но мне кажется, скрывать надо упомянутый в path_form_alter $form['path']['alias'].
Вес модулей и порядок вызова хуков изменения формы
Эээм, может быть Вы мне поможете...
А можно, я тоже попробую? Еще разок?
Смотрите, path тоже реализует hook_form_alter. Куча таких хуков от разных модулей должна как-то упорядочиваться в плане вызовов, верно? Она и упорядочивается - по весу модуля, если вес одинаковый - по названию модуля.
У path вес 0, у вашего модуля наверняка тоже. Значит, если вы назвали свой модуль на букву a - вызовется сначала ваш хук со всеми вашими unset, а потом - path_form_node_form_alter, который добавит свой филдсет на уже измененную вами форму.
Вы можете либо изменить название своего модуля так, чтобы он был ниже path в алфавитном порядке, либо увеличить его вес. Тогда ваш хук будет вызван после path, вы увидите и $form['path'] и $form['path']['alias'] и сможете делать с ними все что душе угодно.
ser_house, спасибо большое! Просто переименовал модуль в "ZZ Module" и всё получилось!