我試圖寫一個ctools多步向導,這裏是我的嚮導功能;Drupal的ctools多步向導
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));
}
一切都很好,我可以seperately訪問頁面,但按鈕沒有得到印刷,所以我不能去提交和驗證功能。我有另一個差異嚮導。 ID和形式defs,但它像一個魅力。可能是什麼原因。
p.s.所有的函數和變量都在上面的代碼中聲明。
感謝您的評論,這將是一個解決方案,但通常,ctools wizard會自動呈現按鈕。奇怪的是我在同一模塊中有另一個嚮導,它有按鈕。我正在調試ctools的wizard.inc,我可以確認按鈕被插入到表單數組中。生氣了!!!! – eyurdakul