3-4-4
修改活動報名的 create()
您沒有觀看影片的權限
請先登入,登入後,確認您的權限後,即可觀看影片。
- 為了可以加入活動的相關訊息,例如活動名稱、活動日期、報名截止日...等訊息,我們編輯一下
class\Tad_signup_data.php
中的 create()
//編輯表單
public static function create($action_id, $id = '')
{
global $xoopsTpl, $xoopsUser;
//抓取預設值
$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_data_store" : "tad_signup_data_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);
$action = Tad_signup_actions::get($action_id);
if (time() > strtotime($action['end_date'])) {
redirect_header($_SERVER['PHP_SELF'] . "?id=$action_id", 3, "已報名截止,無法再進行報名或修改報名");
}
$myts = \MyTextSanitizer::getInstance();
foreach ($action as $col_name => $col_val) {
//過濾讀出的變數值
if ($col_name == 'detail') {
$col_val = $myts->displayTarea($col_val, 0, 1, 0, 1, 1);
} else {
$col_val = $myts->htmlSpecialChars($col_val);
}
$action[$col_name] = $col_val;
}
$xoopsTpl->assign('action', $action);
$uid = $xoopsUser ? $xoopsUser->uid() : 0;
$xoopsTpl->assign('uid', $uid);
}
time()
:用來取得目前時間戳記,請參考:https://www.php.net/time
strtotime($日期時間)
:用來將日期時間轉為時間戳記,請參考:https://www.php.net/strtotime
- 務必將整個
$action
活動資料陣列傳到樣板,因為要靠他取得活動相關資料
- 由於有用到
Tad_signup_actions
類別,所以在前面要加入 use
use XoopsModules\Tad_signup\Tad_signup_actions;
link to https://github.com/tadlearn/tad_signup/commit/0dee61ca815232dfa5751c95462d297c068eb1a7 \