Ещё один вариант облегчить форму создания/редактирования ноды — поместить все второстепенные настройки в раскрывающийся fieldset:
/**
* Implements hook_form_alter()
*/
function mymodule_form_alter(&$form, &$form_state, $form_id) {
if (isset($form['type']) && isset($form['#node']) && $form_id == $form['type']['#value'] .'_node_form') {
$form['#after_build'][] = '_mymodule_hide_fieldsets';
}
}
/**
* After build callback
*/
function _mymodule_hide_fieldsets($form, &$form_state) {
$fieldsets = array('menu', 'revision_information', 'comment_settings', 'path', 'options', 'author');
$form['node_settings'] = array(
'#type' => 'fieldset',
'#title' => t('Settings'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#weight' => 10,
);
foreach ($fieldsets as $name) {
$form['node_settings'][$name] = $form[$name];
unset($form[$name]);
}
return $form;
}
В переменной $fieldsets
нужно перечислить имена fieldset-ов, которые необходимо сгруппировать.
Написанное актуально для
Drupal 6.x
Похожие записи
- Как добавить исчезающий при наведении текст в поле поиска
- Восстанавливаем позицию текстового курсора при ajax обновлении формы
- Темизация группы чекбоксов или радио-кнопок (#type=>checkboxes, #type=>radios)
- Отсылка на сервер дополнительных данных в системном автокомплите
- Изменить тип всех кнопок с input type="submit" на button type="submit"
Комментарии
гениально просто! спасибо.
Немного не понял. Это я вставляю в template.php, и меня есть тип материала "картошка", хочу сделать так, как описали Вы в этом посте, что я должен поменять в вашем коде, чтобы у типа материала "картошка" были спрятаны настройки?
этот код нужно вставлять в файл своего модуля и рассчитан он на любой тип материала. если нужно только для картошки, то придётся изменить условие в первой функции на:
Огромное Вам спасибо - заработало, теперь понятно куда код вставлять.
И еще один вопрос. А как узнать имена fieldset-ов, которые необходимо сгруппировать?
поставьте devel и вызовите в
_mymodule_hide_fieldsets
:Добрый вечер.
Давно использую данный хук, и вот сегодня всплыл небольшой недостаток - вкладка "Настройки" не скрывается для гостей.
Все вложенные в нее вкладки скрываются как положено, а она просто висит пустой.
Как исправить данный недостаток?
Спасибо.
делайте проверку на
$GLOBALS['user']->uid
А для Drupal 7 такое решение прокатит?
Добавить комментарий