You are here

function ctools_wizard_defaults in Chaos Tool Suite (ctools) 6

Same name and namespace in other branches
  1. 7 includes/wizard.inc \ctools_wizard_defaults()

Set default parameters and callbacks if none are given. Callbacks follows pattern: $form_info['id']_$hook $form_info['id']_$form_info['forms'][$step_key]_$hook

1 call to ctools_wizard_defaults()
ctools_wizard_multistep_form in includes/wizard.inc
Display a multi-step form.

File

includes/wizard.inc, line 415
CTools' multi-step form wizard tool.

Code

function ctools_wizard_defaults(&$form_info) {
  $hook = $form_info['id'];
  $defaults = array(
    'show trail' => FALSE,
    'free trail' => FALSE,
    'show back' => FALSE,
    'show cancel' => FALSE,
    'show return' => FALSE,
    'next text' => t('Continue'),
    'back text' => t('Back'),
    'return text' => t('Update and return'),
    'finish text' => t('Finish'),
    'cancel text' => t('Cancel'),
  );
  if (!empty($form_info['free trail'])) {
    $defaults['next text'] = t('Update');
    $defaults['finish text'] = t('Save');
  }
  $form_info = $form_info + $defaults;

  // set form callbacks if they aren't defined
  foreach ($form_info['forms'] as $step => $params) {
    if (!$params['form id']) {
      $form_callback = $hook . '_' . $step . '_form';
      $form_info['forms'][$step]['form id'] = $form_callback;
    }
  }

  // set button callbacks
  $callbacks = array(
    'back callback' => '_back',
    'next callback' => '_next',
    'return callback' => '_return',
    'cancel callback' => '_cancel',
    'finish callback' => '_finish',
  );
  foreach ($callbacks as $key => $callback) {

    // never overwrite if explicity defined
    if (empty($form_info[$key])) {
      $wizard_callback = $hook . $callback;
      if (function_exists($wizard_callback)) {
        $form_info[$key] = $wizard_callback;
      }
    }
  }
}