You are here

function field_group_field_ui_clone_field_groups_validate in Field Group 7

Same name and namespace in other branches
  1. 8.3 includes/field_ui.inc \field_group_field_ui_clone_field_groups_validate()
  2. 8 includes/field_ui.inc \field_group_field_ui_clone_field_groups_validate()

Validate handler to validate saving existing fieldgroups from one view mode or form to another.

1 string reference to 'field_group_field_ui_clone_field_groups_validate'
field_group_field_ui_create_vertical_tabs in ./field_group.field_ui.inc
Create vertical tabs.

File

./field_group.field_ui.inc, line 899
Field_group.field_ui.inc is a file that contains most functions needed on the Fields UI Manage forms (display and fields).

Code

function field_group_field_ui_clone_field_groups_validate($form, &$form_state) {
  $source_mode = $form_state['#source_mode'] = $form_state['values']['additional_settings']['fieldgroup_clone'] == '0' ? 'form' : $form_state['values']['additional_settings']['fieldgroup_clone'];
  $groups_to_clone = $form_state['#groups_to_clone'] = field_group_read_groups(array(
    'bundle' => $form_state['field_group_params']->bundle,
    'entity_type' => $form_state['field_group_params']->entity_type,
  ));
  $form_state['#source_groups'] = array();
  if (!empty($groups_to_clone) && isset($groups_to_clone[$form_state['field_group_params']->entity_type], $groups_to_clone[$form_state['field_group_params']->entity_type][$form_state['field_group_params']->bundle], $groups_to_clone[$form_state['field_group_params']->entity_type][$form_state['field_group_params']->bundle][$source_mode])) {
    $form_state['#source_groups'] = $groups_to_clone[$form_state['field_group_params']->entity_type][$form_state['field_group_params']->bundle][$source_mode];
  }

  // Check for types are not known in current mode.
  if ($form_state['field_group_params']->mode != 'form') {
    $non_existing_types = array(
      'multipage',
      'multipage-group',
    );
  }
  else {
    $non_existing_types = array(
      'div',
    );
  }
  foreach ($form_state['#source_groups'] as $key => $group) {
    if (in_array($group->format_type, $non_existing_types)) {
      unset($form_state['#source_groups'][$key]);
      drupal_set_message(t('Skipping @group because this type does not exist in current mode', array(
        '@group' => $group->label,
      )), 'warning');
    }
  }
  if (empty($form_state['#source_groups'])) {

    // Report error found with selection.
    form_set_error('additional_settings][fieldgroup_clone', t('No field groups were found in selected view mode.'));
    return;
  }
}