You are here

function _flexiform_multistep_field_group_format_settings in Flexiform 7

Add additional settings for multi-page forms.

1 call to _flexiform_multistep_field_group_format_settings()
flexiform_multistep_field_group_format_settings in flexiform_multistep/flexiform_multistep.module
Implements hook_field_group_format_settings().

File

flexiform_multistep/flexiform_multistep.admin.inc, line 192
Admin functions for Flexiform Multistep.

Code

function _flexiform_multistep_field_group_format_settings($group) {
  $flexiform = flexiform_load($group->bundle);
  $settings = isset($flexiform->settings['flexiform_multistep']) ? $flexiform->settings['flexiform_multistep'] : array();
  $form = array(
    'instance_settings' => array(
      '#tree' => TRUE,
      '#weight' => 2,
    ),
  );
  $form['instance_settings']['save_entities'] = array(
    '#type' => 'select',
    '#title' => t('Entities to save on submission'),
    '#empty_option' => t('Use form default - @default', array(
      '@default' => t(!empty($settings['save_entities']) ? 'save entities on this page' : 'save all entities on last page'),
    )),
    '#options' => array(
      'y' => t('Save entities exposed on this page'),
      'n' => t("Don't save any entities on this page"),
      'c' => t('Choose which entities to save'),
    ),
    '#description' => t('Choose which entities should be saved on the submission of this page.'),
    '#default_value' => isset($group->format_settings['instance_settings']['save_entities']) ? $group->format_settings['instance_settings']['save_entities'] : NULL,
  );
  $form['instance_settings']['save_entities_custom'] = array(
    '#type' => 'checkboxes',
    '#title' => t('Entities to save on page submission'),
    '#options' => array(),
    '#description' => t('Select which entities to save when this page is submitted. The last page will save all entities if none are selected.'),
    '#default_value' => isset($group->format_settings['instance_settings']['save_entities_custom']) ? $group->format_settings['instance_settings']['save_entities_custom'] : array(),
    '#states' => array(
      'visible' => array(
        ':input[name="fields[' . $group->group_name . '][format_settings][settings][instance_settings][save_entities]"]' => array(
          'value' => 'c',
        ),
      ),
    ),
  );
  foreach ($flexiform->entities as $namespace => $entity) {
    $form['instance_settings']['save_entities_custom']['#options'][$namespace] = $entity['label'];
  }
  $form['instance_settings']['page_title'] = array(
    '#type' => 'textfield',
    '#title' => t('Page title'),
    '#description' => t('Optionally provide a page title.'),
    '#default_value' => isset($group->format_settings['instance_settings']['page_title']) ? $group->format_settings['instance_settings']['page_title'] : NULL,
  );
  return $form;
}