Убираем ненужные филдсеты hook_form_alter

Часто у всех возникает вопрос - как убрать лишние филдсеты при создании ноды node/add/page. Делается это все очень просто, для этого нужно создать свой модуль и использовать в нём hook_form_alter():

Создаем mymodule.info файл.


name = Name of our module
description = Desription about our module
core = 6.x
version = 6.x - 1.0

Создаем mymodule.module файл.

function mymodule_form_alter(&$form, $form_state, $form_id) {
  drupal_set_message($form_id); // Узнаем ID формы
  switch($form_id) {
    case 'page_node_form':
      dpm($form); // установите Devel и смотрите содержимое формы
     
      unset($form['menu'], $form['comment_settings']); // так нежелательно убирать.
      $form['path']['#access'] = FALSE; //так желательно убирать ненужное    

    break;
  }
}

В этом примере мы использовали switch() т.к. в большинстве случаев необходимо изменять ни одну форму, а несколько. Также не забудьте изменить "mymodule" на название вашего модуля.

ПРИМЕЧАНИЕ.
Если посмотрев массив $form, вы не видите всех филдсетов (сторонних модулей), то вам нужно в таблице {system} найти свой модуль и увеличить weight, чтобы наш hook запукался в самую последнюю очередь, иначе мы не увидим все элементы формы.

Comments

Anonymous's picture

fdfdfd

Anonymous's picture

Лишние это все?

Лишние это все?

heihachi's picture

Лишние - это те, которые вам

Лишние - это те, которые вам не нужны.