:::

6-6-1 用 TadDataCenter 來註記候補

您沒有觀看影片的權限

您沒有觀看影片的權限

請先登入,登入後,確認您的權限後,即可觀看影片。

  1. 修改資料表是件痛苦又很難避免的事情
  2. TadDataCenter 其實可以大大簡化這種事,例如我們想註記哪些報名者是候補,理論上,要在資料表再多個欄位來註記,但這次我們用TadDataCenter 來做(https://www.tad0616.net/modules/tad_book3/page.php?tbsn=48&tbdsn=1716)。
  3. 修改 class\Tad_signup_data.phpstore(),直接指定 tag 的值為「候補」並存入:
    //新增資料
    public static function store()
    {
        /*--略--*/
    
        // 若是超過名額,註記為「候補」
        $action = Tad_signup_actions::get($action_id, true);
        $action['signup'] = Tad_signup_data::get_all($action_id);
        if (count($action['signup']) >= $action['number']) {
            $TadDataCenter->set_col('data_id', $id);
            $TadDataCenter->saveCustomData(['tag' => ['候補']]);
        }
        return $id;
    }

     

  4. 接著在顯示報名名單時,抓取註記即可
  5. 修改 class\Tad_signup_data.php 中的 get_all(),取出 tag 的資料
    //取得所有資料陣列
    public static function get_all($action_id = '', $uid = '', $auto_key = false)
    {
        /*--略--*/
        $data_arr = [];
        $TadDataCenter = new TadDataCenter('tad_signup');
        while ($data = $xoopsDB->fetchArray($result)) {
            $TadDataCenter->set_col('id', $data['id']);
            $data['tdc'] = $TadDataCenter->getData();
            $data['action'] = Tad_signup_actions::get($data['action_id'], true);
            $TadDataCenter->set_col('data_id', $data['id']);
            $data['tag'] = $TadDataCenter->getData('tag', 0);
    
            /*--略--*/
        }
        return $data_arr;
    }

     

  6. 最後顯示出來即可,修改 templates\op_tad_signup_actions_show.tpl,在日期欄位加入候補標記
    <table class="table" data-toggle="table" data-pagination="true" data-search="true" data-mobile-responsive="true">
        <!--略-->
        <tbody>
            <{foreach from=$signup item=signup_data}>
                <tr>
                    <!--略-->
                    <td>
                        <{$signup_data.signup_date}>
                        <{if $signup_data.tag}>
                            <div><span class="badge badge-primary"><{$signup_data.tag}></span></div>
                        <{/if}>
                    </td>
                </tr>
            <{/foreach}>
        </tbody>
    </table>

     

link to https://github.com/tadlearn/tad_signup/commit/2c6fd30ba620c403a8a5bc8239cbc4efa11b988e \


:::

搜尋

QR Code 區塊

https%3A%2F%2Ftad0616.net%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D1741%26tbsn%3D48

書籍目錄

展開 | 闔起

線上使用者

68人線上 (9人在瀏覽線上書籍)

會員: 0

訪客: 68

更多…