2-3-1
解析建立活動表單的方法
您沒有觀看影片的權限
請先登入,登入後,確認您的權限後,即可觀看影片。
- 新增活動的連結為
index.php?op=tad_signup_actions_create
,代表 index.php
會收到 $_GET['op']=tad_signup_actions_create
- switch 中要有這段設定(沒有請新增):
//新增表單
case 'tad_signup_actions_create':
Tad_signup_actions::create();
break;
Tad_signup_actions::create()
意味著會執行 class/Tad_signup_actions.php
中 Tad_signup_actions
類別的 create()
方法
- 請注意裡面的
$xoopsTpl->assign()
有哪些,表示我們可以在樣板用的標籤就有哪些。
//編輯表單
public static function create($id = '')
{
global $xoopsTpl;
//抓取預設值
$db_values = empty($id) ? [] : self::get($id);
foreach ($db_values as $col_name => $col_val) {
$$col_name = $col_val;
$xoopsTpl->assign($col_name, $col_val);
}
$op = empty($id) ? "tad_signup_actions_store" : "tad_signup_actions_update";
$xoopsTpl->assign('next_op', $op);
//套用formValidator驗證機制
$formValidator = new FormValidator("#myForm", true);
$formValidator->render();
//加入Token安全機制
include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
$token = new \XoopsFormHiddenToken();
$token_form = $token->render();
$xoopsTpl->assign("token_form", $token_form);
}
其實目前不呼叫 create()
也是幾乎沒有任何影響
- 加入Token安全機制的用法挺固定,是XOOPS內建用法,用來避免表單被偽造(很重要)。
//加入Token安全機制
include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
$token = new \XoopsFormHiddenToken();
$token_form = $token->render();
FormValidator
則是放在tadtools的工具,用來進行表單驗證用的。
- 可以參考:https://www.tad0616.net/modules/tad_book3/page.php?tbsn=15&tbdsn=402
link to https://github.com/tadlearn/tad_signup/commit/0592001f0ab8434d1bc783f680c7fcd2c1702411 \