/**
  * Create a new group.
  * @param array $data
  *   Data for the field group.
  */
 function createGroup($entity_type, $bundle, $context, $mode, array $data)
 {
     if (!isset($data['format_settings'])) {
         $data['format_settings'] = array();
     }
     $data['format_settings'] += _field_group_get_default_formatter_settings($data['format_type']);
     $group_name = 'group_' . Unicode::strtolower($this->randomMachineName());
     $field_group = (object) array('group_name' => $group_name, 'entity_type' => $entity_type, 'bundle' => $bundle, 'mode' => $mode, 'context' => $context, 'children' => isset($data['children']) ? $data['children'] : array(), 'parent_name' => isset($data['parent']) ? $data['parent'] : '', 'weight' => isset($data['weight']) ? $data['weight'] : 0, 'label' => isset($data['label']) ? $data['label'] : $this->randomString(8), 'format_type' => $data['format_type'], 'format_settings' => $data['format_settings']);
     field_group_group_save($field_group);
     return $field_group;
 }
Example #2
0
 /**
  * {@inheritdoc}
  */
 public function submitForm(array &$form, FormStateInterface $form_state)
 {
     if ($form_state->get('step') == 'formatter') {
         $form_state->set('step', 'configuration');
         $form_state->set('group_label', $form_state->getValue('label'));
         $form_state->set('group_name', $form_state->getValue('group_name'));
         $form_state->set('group_formatter', $form_state->getValue('group_formatter'));
         $form_state->setRebuild();
     } else {
         $new_group = (object) array('group_name' => $form_state->get('group_name'), 'entity_type' => $this->entityTypeId, 'bundle' => $this->bundle, 'mode' => $this->mode, 'context' => $this->context, 'children' => [], 'parent_name' => '', 'weight' => 20, 'label' => $form_state->get('group_label'), 'format_type' => $form_state->get('group_formatter'));
         $new_group->format_settings = $form_state->getValue('format_settings');
         $new_group->format_settings += _field_group_get_default_formatter_settings($form_state->get('group_formatter'), $this->context);
         field_group_group_save($new_group);
         // Store new group information for any additional submit handlers.
         $groups_added = $form_state->get('groups_added');
         $groups_added['_add_new_group'] = $new_group->group_name;
         drupal_set_message(t('New group %label successfully created.', array('%label' => $new_group->label)));
         $form_state->setRedirectUrl(FieldgroupUi::getFieldUiRoute($new_group));
         \Drupal::cache()->invalidate('field_groups');
     }
 }