page_manager_page_wizard

  1. drupal
    1. 6 page-wizard.inc function
    2. 7 page-wizard.inc function
Drupal 7 page_manager_page_wizard($name, $step = NULL)

Menu callback for the page wizard.

4 string references to 'page_manager_page_wizard'

File

sites/all/modules/ctools/includes/page-wizard.inc, line 84

Code

function page_manager_page_wizard($name, $step = NULL) {
  $plugin = page_manager_get_page_wizard($name);
  if (!$plugin) {
    return MENU_NOT_FOUND;
  }

  // Check for simple access string on plugin.
  if (!empty($plugin['access']) && !user_access($plugin['access'])) {
    return MENU_ACCESS_DENIED;
  }

  // Check for possibly more complex access callback on plugin.
  if ($function = ctools_plugin_get_function($plugin, 'access callback') && !$function($plugin)) {
    return MENU_ACCESS_DENIED;
  }

  // Create a basic wizard.in form info array and merge it with the
  // plugin's.
  $form_info = array(
    'id' => 'page_manager_page_wizard', 
    'show trail' => TRUE, 
    'show back' => TRUE, 
    'show return' => FALSE, 
    'show cancel' => FALSE, 
    'next callback' => 'page_manager_page_wizard_next', 
    'finish callback' => 'page_manager_page_wizard_finish', 
    'path' => "admin/structure/pages/wizard/$name/%step",
  );

  $form_info = array_merge_recursive($form_info, $plugin['form info']);

  // If step is unset, go with the basic step.
  if (!isset($step)) {
    $step = current(array_keys($form_info['order']));
    $cache = page_manager_make_wizard_cache($plugin);
  }
  else {
    $cache = page_manager_get_wizard_cache($plugin);
  }

  ctools_include('wizard');
  $form_state = array(
    'plugin' => $plugin, 
    'wizard cache' => $cache, 
    'type' => 'edit', 
    'rerender' => TRUE, 
    'step' => $step,
  );

  if (isset($plugin['page title'])) {
    drupal_set_title($plugin['page title']);
  }

  if ($function = ctools_plugin_get_function($form_state['plugin'], 'start')) {
    $function($form_info, $step, $form_state);
  }

  $output = ctools_wizard_multistep_form($form_info, $step, $form_state);
  return $output;
}