drupal ctools multistep wizard

1k views Asked by At

i am trying to write a ctools multistep wizard, here is my wizard function;

function _mymodule_adv_wizard($js=NULL, $step="step1") {

  $form_info = array();
  $form_info["id"]              = SK_ADV_WIZARD_ID;
  $form_info["path"]            = "tests/adv/mymodule/%step";

  $form_info["show trail"]      = TRUE;
  $form_info["show back"]       = TRUE;
  $form_info["show cancel"]     = TRUE;
  $form_info["show return"]     = TRUE;

  $form_info["next callback"]   = "_my_module_adv_wizard_on_next";
  $form_info["finish callback"] = "_my_module_adv_wizard_on_finish";
  $form_info["cancel callback"] = "_my_module_adv_wizard_on_cancel";

  $form_info["order"]           = array("step1" => t("Stap 1"), "step2" => t("Stap 2"), "step3" => t("Stap 3"), "step4" => t("Stap 4"), "step5" => t("Stap 5"), "step6" => t("Stap 6"), "step7" => t("Stap 7"), "step8" => t("Stap 8"));

  $form_info["forms"]           = array(); 
  $form_info["forms"]["step1"]  = array("form id" => "_my_module_adv_step1_form");
  $form_info["forms"]["step2"]  = array("form id" => "_my_module_adv_step2_form");
  $form_info["forms"]["step3"]  = array("form id" => "_my_module_adv_step3_form");
  $form_info["forms"]["step4"]  = array("form id" => "_my_module_adv_step4_form");
  $form_info["forms"]["step5"]  = array("form id" => "_my_module_adv_step5_form");
  $form_info["forms"]["step6"]  = array("form id" => "_my_module_adv_step6_form");
  $form_info["forms"]["step7"]  = array("form id" => "_my_module_adv_step7_form");
  $form_info["forms"]["step8"]  = array("form id" => "_my_module_adv_step8_form");

  $form_state = array("ajax" => FALSE, "object_id" => SK_ADV_OBJECT_ID, "object" => new stdClass());

  //initialize ctools wizard
  ctools_include("wizard");
  $form = ctools_wizard_multistep_form($form_info, $step, $form_state); 
  return theme('my_module_wrapper', array('formwrapper'  =>  $form, 'page'  =>  $step));
}

Everything is fine and i can access pages seperately but the buttons don't get printed so i can't go to the submit and validate functions. I have another wizard with diff. id and form defs but it works like a charm. What could be the reason.

p.s. all functions and variables are declared in the code above.

2

There are 2 answers

0
Michael Brandt On

Do you reset the form-array at your first step?

function _my_module_adv_step1_form($form, &$form_state){
    $form = array(); // this remove your submit-buttons. Delete this line and your bottons will appear.
    //... your form elements...
}
1
AKS On

This is not an answer but posting as an answer because comment box is not enough for this.

My best guessing is that you need to add the buttons on your won.

function _my_module_adv_step1_form($form, &$form_state){
  ... your form elements...
  $form['next'] = array(
    '#type' => 'submit',
    '#value' => t('Next'),
    '#submit' => array('_my_module_adv_wizard_on_next'),
  );
}