Как программно добавить field group
Разместил Саша → 23.09.2015
Для модуля калькулятора понадобилось программное добавление field group. Чтобы получить код настроек для создания группы полей необходимо:
- Создать в сущности эту группу.
- Модифицировать код, приведённый ниже. Сделать настройки в трёх первых полях:
$fieldgroup_name = ''; // e.g., group_author_info $entity_type = ''; // e.g., node $bundle_name = ''; // e.g., story include_once DRUPAL_ROOT . '/includes/utility.inc'; $group = field_group_load_field_group($fieldgroup_name, $entity_type, $bundle_name, 'form'); $group_var = '$' . $fieldgroup_name . ' = ' . substr(drupal_var_export($group), 9) . ";\r"; $group_var = preg_replace("/ 'id'.*,\n/", '', $group_var); // remove the ID property $group_var = preg_replace("/ 'export_type'.*,\n/", '', $group_var); // remove the export_type property $output = $group_var . 'field_group_group_save($' . $fieldgroup_name . ');'; drupal_set_message("<textarea rows=30 style=\"width: 100%;\">" . $output . '</textarea>');
- Запустить этот код на странице модуля Devel “Execute PHP Code”: /devel/php
- После получения кода через UI удалить из страницы ноды сделанные группы.
- Полученный код вставить в hook_install():
/** * Implements hook_install(). */ function activecollab_install() { $group_activecollab_settings = array( 'identifier' => 'group_activecollab_settings|user|user|form', 'group_name' => 'group_activecollab_settings', 'entity_type' => 'user', 'bundle' => 'user', 'mode' => 'form', 'parent_name' => '', 'table' => 'field_group', 'type' => 'Overridden', 'disabled' => FALSE, 'export_module' => 'activecollab', 'label' => 'Active Collab Settings', 'weight' => '3', 'children' => array( 'field_activecollab_apikey', ), 'format_type' => 'fieldset', 'format_settings' => array( 'formatter' => 'collapsible', 'instance_settings' => array( 'description' => '', 'classes' => '', 'required_fields' => 1, ), ), ); field_group_group_save($group_activecollab_settings); }
Если группы не добавляются в тип материала, то они могли быть не удалены на 4 шаге. Неактивные группы отображаются снизу страницы.
Раздел:
Источник:
http://agileadam.com/2014/01/creating-field-groups-in-a-custom-module/
Оставить комментарий