You are here

function _flexiform_multistep_form_flexiform_manage_form_fields_form_alter in Flexiform 7

Implements hook_form_FORM_ID_alter() for flexiform_manage_form_fields_form().

1 call to _flexiform_multistep_form_flexiform_manage_form_fields_form_alter()
flexiform_multistep_form_flexiform_manage_form_fields_form_alter in flexiform_multistep/flexiform_multistep.module
Implements hook_form_FORM_ID_alter() for flexiform_manage_form_fields_form().

File

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

Code

function _flexiform_multistep_form_flexiform_manage_form_fields_form_alter(&$form, &$form_state, $form_id) {
  $settings = isset($form['#flexiform']->settings['flexiform_multistep']) ? $form['#flexiform']->settings['flexiform_multistep'] : array();
  array_unshift($form['#submit'], 'flexiform_multistep_manage_form_fields_submit');
  $form['additional_settings']['flexiform_multistep'] = array(
    '#type' => 'fieldset',
    '#title' => t('Multi-page'),
    '#description' => t('Configure this form for server side multi-pages.'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
    '#parents' => array(
      'flexiform_multistep',
    ),
  );
  $form['additional_settings']['flexiform_multistep']['enabled'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable server side multi-page for this form.'),
    '#default_value' => !empty($settings['enabled']),
  );
  ctools_include('wizard');
  $ctools_wizard_defaults = array(
    'id' => NULL,
    'forms' => array(),
  );
  ctools_wizard_defaults($ctools_wizard_defaults);
  $form['additional_settings']['flexiform_multistep']['form_info']['show trail'] = array(
    '#type' => 'checkbox',
    '#title' => t('Show progress indicator'),
    '#default_value' => isset($settings['form_info']['show trail']) ? $settings['form_info']['show trail'] : $ctools_wizard_defaults['show trail'],
    '#states' => array(
      'visible' => array(
        ':input[name="flexiform_multistep[enabled]"]' => array(
          'checked' => TRUE,
        ),
      ),
    ),
  );
  $form['additional_settings']['flexiform_multistep']['form_info']['next text'] = array(
    '#type' => 'textfield',
    '#title' => t('Next button text'),
    '#default_value' => isset($settings['form_info']['next text']) ? $settings['form_info']['next text'] : NULL,
    '#description' => t('Leave blank to use %text', array(
      '%text' => $ctools_wizard_defaults['next text'],
    )),
    '#states' => array(
      'visible' => array(
        ':input[name="flexiform_multistep[enabled]"]' => array(
          'checked' => TRUE,
        ),
      ),
    ),
  );
  $form['additional_settings']['flexiform_multistep']['form_info']['finish text'] = array(
    '#type' => 'textfield',
    '#title' => t('Finish button text'),
    '#default_value' => isset($settings['form_info']['finish text']) ? $settings['form_info']['finish text'] : NULL,
    '#description' => t('Leave blank to use %text', array(
      '%text' => $ctools_wizard_defaults['finish text'],
    )),
    '#states' => array(
      'visible' => array(
        ':input[name="flexiform_multistep[enabled]"]' => array(
          'checked' => TRUE,
        ),
      ),
    ),
  );
  $form['additional_settings']['flexiform_multistep']['form_info']['show back'] = array(
    '#type' => 'checkbox',
    '#title' => t('Show back button'),
    '#default_value' => isset($settings['form_info']['show back']) ? $settings['form_info']['show back'] : $ctools_wizard_defaults['show back'],
    '#states' => array(
      'visible' => array(
        ':input[name="flexiform_multistep[enabled]"]' => array(
          'checked' => TRUE,
        ),
      ),
    ),
  );
  $form['additional_settings']['flexiform_multistep']['form_info']['back text'] = array(
    '#type' => 'textfield',
    '#title' => t('Back button text'),
    '#default_value' => isset($settings['form_info']['back text']) ? $settings['form_info']['back text'] : NULL,
    '#description' => t('Leave blank to use %text', array(
      '%text' => $ctools_wizard_defaults['back text'],
    )),
    '#states' => array(
      'visible' => array(
        ':input[name="flexiform_multistep[enabled]"]' => array(
          'checked' => TRUE,
        ),
        ':input[name="flexiform_multistep[form_info][show back]"]' => array(
          'checked' => TRUE,
        ),
      ),
    ),
  );
  $form['additional_settings']['flexiform_multistep']['form_info']['show cancel'] = array(
    '#type' => 'checkbox',
    '#title' => t('Show cancel button'),
    '#default_value' => isset($settings['form_info']['show cancel']) ? $settings['form_info']['show cancel'] : $ctools_wizard_defaults['show cancel'],
    '#states' => array(
      'visible' => array(
        ':input[name="flexiform_multistep[enabled]"]' => array(
          'checked' => TRUE,
        ),
      ),
    ),
  );
  $form['additional_settings']['flexiform_multistep']['form_info']['cancel text'] = array(
    '#type' => 'textfield',
    '#title' => t('Cancel button text'),
    '#default_value' => isset($settings['form_info']['cancel text']) ? $settings['form_info']['cancel text'] : NULL,
    '#description' => t('Leave blank to use %text', array(
      '%text' => $ctools_wizard_defaults['cancel text'],
    )),
    '#states' => array(
      'visible' => array(
        ':input[name="flexiform_multistep[enabled]"]' => array(
          'checked' => TRUE,
        ),
        ':input[name="flexiform_multistep[form_info][show cancel]"]' => array(
          'checked' => TRUE,
        ),
      ),
    ),
  );
  $form['additional_settings']['flexiform_multistep']['form_info']['show return'] = array(
    '#type' => 'checkbox',
    '#title' => t('Show return button'),
    '#description' => t('Saves and keeps you on the current page.'),
    '#default_value' => isset($settings['form_info']['show return']) ? $settings['form_info']['show return'] : $ctools_wizard_defaults['show return'],
    '#states' => array(
      'visible' => array(
        ':input[name="flexiform_multistep[enabled]"]' => array(
          'checked' => TRUE,
        ),
      ),
    ),
  );
  $form['additional_settings']['flexiform_multistep']['form_info']['return text'] = array(
    '#type' => 'textfield',
    '#title' => t('Return button text'),
    '#default_value' => isset($settings['form_info']['return text']) ? $settings['form_info']['return text'] : NULL,
    '#description' => t('Leave blank to use %text', array(
      '%text' => $ctools_wizard_defaults['return text'],
    )),
    '#states' => array(
      'visible' => array(
        ':input[name="flexiform_multistep[enabled]"]' => array(
          'checked' => TRUE,
        ),
        ':input[name="flexiform_multistep[form_info][show return]"]' => array(
          'checked' => TRUE,
        ),
      ),
    ),
  );
  $form['additional_settings']['flexiform_multistep']['save_entities'] = array(
    '#type' => 'checkbox',
    '#title' => t('Save entities on the submission of each page'),
    '#description' => t('If checked, all entities used on the page will be saved when the page is submitted rather than all entities being saved at the end. This can be overridden per page.'),
    '#default_value' => !empty($settings['save_entities']),
    '#states' => array(
      'visible' => array(
        ':input[name="flexiform_multistep[enabled]"]' => array(
          'checked' => TRUE,
        ),
      ),
    ),
  );
  $tokens = array(
    '#theme' => 'item_list',
    '#items' => array(),
  );
  foreach ($form['#flexiform']->entities as $namespace => $info) {
    $tokens['#items'][] = format_string('%namespace: @label', array(
      '%namespace' => '%' . $namespace,
      '@label' => $info['label'],
    ));
  }
  $form['additional_settings']['flexiform_multistep']['redirect'] = array(
    '#type' => 'textfield',
    '#title' => t('Redirect on completion'),
    '#description' => t('Provide an internal path to redirect to on completion of the form. The following tokens are available: !tokens', array(
      '!tokens' => drupal_render($tokens),
    )),
    '#default_value' => isset($settings['redirect']) ? $settings['redirect'] : NULL,
  );
}