:::
6-2 修改前台流程
- 我們希望,一進到模組首頁,看到的就是活動列表,但如果有傳入活動編號$action_id,那麼就顯示單一活動,我們先看看傳入變數的過濾(這是官方用法,常用類型有string、int、array):
/*-----------執行動作判斷區----------*/ include_once $GLOBALS['xoops']->path('/modules/system/include/functions.php'); $op = system_CleanVars($_REQUEST, 'op', '', 'string'); $action_id = system_CleanVars($_REQUEST, 'action_id', 0, 'int'); - 流程部份改為這樣:
try { switch ($op) { default: if ($action_id) { show_action($action_id); $op = "show_action"; } else { list_action(); $op = "list_action"; } break; } } catch (exception $e) { redirect_header($_SERVER['PHP_SELF'], 3, $e->getMessage()); } /*-----------秀出結果區--------------*/ $xoopsTpl->assign('op', $op); include_once XOOPS_ROOT_PATH . '/footer.php'; -
由於 default 時是沒有 $op(用來告訴程式現在要做什麼的),所以,我們自行定義一個 $op 值,目的是希望也可以把目前的動作傳給樣板,讓樣板也可以根據 $op 的不同,呈現不同內容。
-
接著,我們預留兩個空函數,避免執行錯誤。
//顯示單一活動 function show_action($action_id) { global $xoopsTpl; $main = ""; $xoopsTpl->assign('content', $main); } //顯示活動列表 function list_action() { global $xoopsTpl; $main = ""; $xoopsTpl->assign('content', $main); }
6-1 header.php