Установите для поля "#access
" значение "0
" или "FALSE
".
Например, это удаляет поле "Миссия сайта" со страницы информации о сайте:
function example_form_system_site_information_settings_alter(&$form, &$form_state){
$form['site_mission']['#access'] = 0;
}
(где «example» - это имя пользовательского модуля)
Другой пример, на этот раз он удаляет опцию Sticky из формы добавления / редактирования страницы:
function example_form_page_node_form_alter(&$form, &$form_state){
$form['options']['sticky']['#access'] = 0;
}
Возможно, вы уже знаете это, но вам нужно будет знать идентификатор (и структуру) формы, которую вы хотите изменить.
В большинстве случаев hook_form_THEID_alter(&$form, &$form_state)
- этоХорошее место для изменения определенной формы, однако некоторые поля создаются после вызова этой ловушки, поэтому в таких случаях вам нужно использовать общий hook_form_alter(&$form, $form_state, $form_id)
.
Если вы не знаетеструктуру или даже идентификатор формы (и не хотите устанавливать модуль Devel ), вы можете использовать этот фрагмент, чтобы при просмотре страницы, которую вы хотите изменить, он отображалидентификатор формы и ее структура в верхней части страницы.
<code>function example_form_alter(&$form, $form_state, $form_id){
echo "<h1>Form ID: $form_id</h1>";
echo "Form Structure: <pre>".print_r($form, true)."
";}
(где" пример "это имя вашего пользовательского модуля).
Кстати, если вы просто пытаетесь запретить обычным пользователям редактировать поля только для администратора, вы можете просто использовать модуль Полевые разрешения вместо.