You are here

function bootstrap_fieldgroup_field_group_format_settings in Bootstrap fieldgroup 7

Implements hook_field_group_format_settings(). If the group has no format settings, default ones will be added.

File

./bootstrap_fieldgroup.module, line 112
Module file for the bootstrap_fieldgroup module.

Code

function bootstrap_fieldgroup_field_group_format_settings($group) {

  // Add a wrapper for extra settings to use by others.
  $form = array(
    'instance_settings' => array(),
  );
  $field_group_types = field_group_formatter_info();
  $mode = $group->mode == 'form' ? 'form' : 'display';
  $formatter = $field_group_types[$mode][$group->format_type];

  // Add optional instance_settings.
  switch ($group->format_type) {
    case 'bootstrap_fieldgroup_nav':
      $form['instance_settings']['bootstrap'] = array(
        '#tree' => TRUE,
      );
      $form['instance_settings']['bootstrap_nav_type'] = array(
        '#title' => t('Nav type'),
        '#type' => 'select',
        '#options' => array(
          'tabs' => 'Tabs',
          'pills' => 'Pills',
        ),
        '#default_value' => isset($group->format_settings['instance_settings']['bootstrap_nav_type']) ? $group->format_settings['instance_settings']['bootstrap_nav_type'] : $formatter['instance_settings']['bootstrap_nav_type'],
        '#weight' => 1,
        '#attributes' => array(
          'class' => array(
            'bootstrap-fieldgroup-nav-type',
          ),
        ),
      );
      $form['instance_settings']['bootstrap_stacked'] = array(
        '#title' => t('Stacked'),
        '#type' => 'select',
        '#options' => array(
          0 => t('No'),
          1 => t('Yes'),
        ),
        '#attributes' => array(
          'class' => array(
            'bootstrap-fieldgroup-stacked',
          ),
        ),
        '#default_value' => isset($group->format_settings['instance_settings']['bootstrap_stacked']) ? $group->format_settings['instance_settings']['bootstrap_stacked'] : $formatter['instance_settings']['bootstrap_stacked'],
        '#weight' => 1.5,
      );
      $form['instance_settings']['bootstrap_orientation'] = array(
        '#title' => t('Position the tabs/pills will appear'),
        '#type' => 'select',
        '#options' => array(
          0 => t('Top'),
          1 => t('Right'),
          2 => t('Bottom'),
          3 => t('Left'),
        ),
        '#attributes' => array(
          'class' => array(
            'bootstrap-fieldgroup-orientation',
          ),
        ),
        '#default_value' => isset($group->format_settings['instance_settings']['bootstrap_orientation']) ? $group->format_settings['instance_settings']['bootstrap_orientation'] : $formatter['instance_settings']['bootstrap_orientation'],
        '#weight' => 1.7,
      );
      break;
    case 'bootstrap_fieldgroup_accordion':
    case 'bootstrap_fieldgroup_accordion_item':

      // For now - not use any optional instance_settings.
      break;
    case 'bootstrap_grid_row':
      $form['instance_settings']['show_heading'] = array(
        '#title' => t('Show heading'),
        '#type' => 'select',
        '#options' => array(
          0 => t('No'),
          1 => t('Yes'),
        ),
        '#default_value' => isset($group->format_settings['instance_settings']['show_heading']) ? $group->format_settings['instance_settings']['show_heading'] : $formatter['instance_settings']['show_heading'],
        '#weight' => 1,
      );
      $form['instance_settings']['heading_position'] = array(
        '#title' => t('Heading Position'),
        '#type' => 'select',
        '#options' => array(
          0 => t('Left'),
          1 => t('Right'),
        ),
        '#default_value' => isset($group->format_settings['instance_settings']['heading_position']) ? $group->format_settings['instance_settings']['heading_position'] : $formatter['instance_settings']['heading_position'],
        '#weight' => 1,
      );
      $form['instance_settings']['label_element'] = array(
        '#title' => t('Label element'),
        '#type' => 'textfield',
        '#default_value' => isset($group->format_settings['instance_settings']['label_element']) ? $group->format_settings['instance_settings']['label_element'] : $formatter['instance_settings']['label_element'],
        '#weight' => 1,
      );
      $form['instance_settings']['description_element'] = array(
        '#title' => t('Description element'),
        '#type' => 'textfield',
        '#default_value' => isset($group->format_settings['instance_settings']['description_element']) ? $group->format_settings['instance_settings']['description_element'] : $formatter['instance_settings']['description_element'],
        '#weight' => 1,
      );
      $form['instance_settings']['panelize'] = array(
        '#title' => t('Embed in a panel'),
        '#type' => 'select',
        '#options' => array(
          0 => t('No'),
          1 => t('Yes'),
        ),
        '#default_value' => isset($group->format_settings['instance_settings']['panelize']) ? $group->format_settings['instance_settings']['panelize'] : $formatter['instance_settings']['panelize'],
        '#weight' => 1,
      );
      $form['instance_settings']['bootstrap_grid_col_xs'] = _bootstrap_fieldgroup_grid_col_format_settings('xs', $group, $formatter, true);
      $form['instance_settings']['bootstrap_grid_col_sm'] = _bootstrap_fieldgroup_grid_col_format_settings('sm', $group, $formatter, true);
      $form['instance_settings']['bootstrap_grid_col_md'] = _bootstrap_fieldgroup_grid_col_format_settings('md', $group, $formatter, true);
      $form['instance_settings']['bootstrap_grid_col_lg'] = _bootstrap_fieldgroup_grid_col_format_settings('lg', $group, $formatter, true);
      break;
    case 'bootstrap_grid_col':
      $form['instance_settings']['panelize'] = array(
        '#title' => t('Embed in a panel'),
        '#type' => 'select',
        '#options' => array(
          0 => t('No'),
          1 => t('Yes'),
        ),
        '#default_value' => isset($group->format_settings['instance_settings']['panelize']) ? $group->format_settings['instance_settings']['panelize'] : $formatter['instance_settings']['panelize'],
        '#weight' => 1,
      );
      $form['instance_settings']['bootstrap_grid_col_xs'] = _bootstrap_fieldgroup_grid_col_format_settings('xs', $group, $formatter);
      $form['instance_settings']['bootstrap_grid_col_sm'] = _bootstrap_fieldgroup_grid_col_format_settings('sm', $group, $formatter);
      $form['instance_settings']['bootstrap_grid_col_md'] = _bootstrap_fieldgroup_grid_col_format_settings('md', $group, $formatter);
      $form['instance_settings']['bootstrap_grid_col_lg'] = _bootstrap_fieldgroup_grid_col_format_settings('lg', $group, $formatter);
      break;
    default:
  }
  return $form;
}