drupal form alter удалить поле cck из формы создания / редактирования контента - PullRequest
3 голосов
/ 18 октября 2010

Какой код используется для удаления отображения поля cck со страницы формы создания / редактирования с типом контента?

Ответы [ 2 ]

5 голосов
/ 18 октября 2010

Установите для поля "#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)."
";}

(где" пример "это имя вашего пользовательского модуля).


Кстати, если вы просто пытаетесь запретить обычным пользователям редактировать поля только для администратора, вы можете просто использовать модуль Полевые разрешения вместо.

0 голосов
/ 18 октября 2010

Проверьте этот фрагмент http://drupal.org/node/336355#comment-1192845 и используйте, как описано в предыдущих комментариях ['#access'] = FALSE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...