Убираем ненужные филдсеты 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 файл.
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; //так желательно убирать ненужное
$form['author']['#type'] = 'value';
$form['author']['name'] = array('#type'=>'value', '#value'=>$form['author']['name']['#default_value']);
$form['author']['date'] = array('#type'=>'value', '#value'=>$form['author']['date']['#default_value']);
$form['options']['#type'] = 'value';
$form['options']['status'] = array('#type'=>'value', '#value'=>$form['options']['status']['#default_value']);
$form['options']['moderate'] = array('#type'=>'value', '#value'=>$form['options']['moderate']['#default_value']);
$form['options']['promote'] = array('#type'=>'value', '#value'=>$form['options']['promote']['#default_value']);
$form['options']['sticky'] = array('#type'=>'value', '#value'=>$form['options']['sticky']['#default_value']);
$form['options']['revisions'] = array('#type'=>'value', '#value'=>$form['options']['revisions']['#default_value']);
$form['user_comments']['#type'] = 'value';
$form['user_comments']['comment'] = array('#type'=>'value', '#value'=>$form['user_comments']['comment']['#default_value']);
break;
}
}
В этом примере мы использовали switch() т.к. в большинстве случаев необходимо изменять ни одну форму, а несколько. Также не забудьте изменить "mymodule" на название вашего модуля.
ПРИМЕЧАНИЕ.
Если посмотрев массив $form, вы не видите всех филдсетов (сторонних модулей), то вам нужно в таблице {system} найти свой модуль и увеличить weight, чтобы наш hook запукался в самую последнюю очередь, иначе мы не увидим все элементы формы.
- Categories:
- heihachi's blog
- Add new comment
- 630 reads

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