4-4-1
建立「我的報名紀錄」物件方法
您沒有觀看影片的權限
請先登入,登入後,確認您的權限後,即可觀看影片。
- 之前我們加入了這樣的流程
switch ($op) {
default:
Tad_signup_data::my($uid);
$op = 'tad_signup_data_my';
break;
}
- 所以,要至
class\Tad_signup_data.php
新增 my()
方法
// 查詢某人的報名紀錄
public static function my($uid)
{
global $xoopsTpl, $xoopsUser;
$my_signup = self::get_all(null, $uid);
$xoopsTpl->assign('my_signup', $my_signup);
BootstrapTable::render();
}
由於有用到 BootstrapTable
,所以前面加入
use XoopsModules\Tadtools\BootstrapTable;
- 我們統一呼叫
get_all()
來取得資料,不過現在條件不同,所以新增一個參數,以便可以針對 uid 來取資料
影片中資料庫大小寫不正確,一律改為小寫 prefix("tad_signup_data")
//取得所有資料陣列
public static function get_all($action_id = '', $uid = '', $auto_key = false)
{
global $xoopsDB, $xoopsUser;
$myts = \MyTextSanitizer::getInstance();
if ($action_id) {
$sql = "select * from `" . $xoopsDB->prefix("tad_signup_data") . "` where `action_id`='$action_id' order by `signup_date`";
} else {
if (!$_SESSION['tad_signup_adm'] or !$uid) {
$uid = $xoopsUser ? $xoopsUser->uid() : 0;
}
$sql = "select * from `" . $xoopsDB->prefix("tad_signup_data") . "` where `uid`='$uid' order by `signup_date`";
}
$result = $xoopsDB->query($sql) or Utility::web_error($sql, __FILE__, __LINE__);
$data_arr = [];
$TadDataCenter = new TadDataCenter('tad_signup');
while ($data = $xoopsDB->fetchArray($result)) {
$TadDataCenter->set_col('id', $data['id']);
$data['tdc'] = $TadDataCenter->getData();
if ($_SESSION['api_mode'] or $auto_key) {
$data_arr[] = $data;
} else {
$data_arr[$data['id']] = $data;
}
}
return $data_arr;
}
- 因為有修改
get_all()
,所以必須跨檔搜尋一下,看哪裡有用到 get_all()
的也要修改一下參數,如:class\Tad_signup_actions.php
中的 show()
就要改一下:
$signup = Tad_signup_data::get_all($id, null, true);
link to https://github.com/tadlearn/tad_signup/commit/dd9fee2e892b3bafcdeb0e6ba9dfca51b2ade463 \