Для Друпал есть прекрасный модуль Field Group, который позволяет группировать поля не только при выводе сущностей, но и на форме редактирования.
По умолчанию на форме редактирования есть стандартный набор вертикальных вкладок, типа "Настройки публикации" или "Настрйки комментариев".
Покажу пример, как можно эти вкладки переместить из стандартных вертикальных в любую группу, созданную через Field Group.
Например, есть тип материала "contract". В нем свойство "promote" мы используем, что бы отмечать разовые договора. Чекбокс"promote" расположен на вкладке "Настройки публикации", и для удобства редактирования, нужно эту вкладку переместить в другое место на форме
/** * Implements hook_form_FORM_ID_alter. */ function MYMODULE_form_contract_node_form_alter(&$form, &$form_state, $form_id) { $form['#attached']['css'][] = drupal_get_path('module', 'frz_address') . '/css/contract-form.css'; unset($form['options']['#group']); //Удаляем старую группу $form['options']['#type'] = 'container'; //Отключаем fieldset, будет просто div $form['#group_children']['options'] = 'group_left'; //Имя нашей группы (Field Group) //Меняем заголовок чекбокса (мы его используем не по назначению) $form['options']['promote']['#title'] = 'Разовый';
Или вот еще пример. Модуль Ubercart добавляет вкладку "Информация о товаре". Хотим ее переместить в другую группу, а также вкладку от модуля Flag
/** * Implements hook_form_alter(). * */ function MYMODULE_form_alter(&$form, &$form_state, $form_id) { if (uc_product_is_product_form($form)) { if (isset($form['base'])) { unset($form['base']['#group']); unset($form['base']['#attached']); $form['base']['#type'] = 'fieldset'; $form['#group_children']['base'] = 'group_product_lines'; $form['base']['#collapsible'] = FALSE; $form['base']['#collapsed'] = FALSE; } if(isset($form['flag'])){ unset($form['flag']['#group']); unset($form['flag']['#attached']); $form['flag']['#type'] = 'container'; $form['flag']['#title'] = ''; $form['#group_children']['flag'] = 'group_sklad'; } } }
В результате можно получить вот такую удобную админку для редактирования товаров:
Комментарии
Добавить комментарий