:::

14-1 過期活動不該顯示出來

  1. 過期的活動,還有關閉的活動,其實都不該顯示出來。
  2. 問題是,不顯示出來,管理員如何進入已關閉的活動再將之開啟呢?
  3. 特地為管理員做個界面?也是可以,但也太累人了...
  4. 建議解法:列出活動時,可根據身份來呈現不同結果。

一、修改列出活動的函數

  1. 這部份的改法相當簡單,只要修改一個函數就結束了。
    //列出所有活動
    function list_action()
    {
        global $db, $smarty;
        $where  = (!isset($_SESSION['group']) or $_SESSION['group'] != "admin") ? 'where `end_date` > now() and `enable`=1' : '';
        $sql    = "SELECT * FROM `actions` $where order by action_date desc";
        $result = $db->query($sql);
        if (!$result) {
            throw new Exception($db->error);
        }
        $actions = [];
        while ($values = $result->fetch_assoc()) {
            $actions[] = $values;
        }
        $smarty->assign('actions', $actions);
    }
  2. 第五行的條件中,我們設了兩個條件,一個是尚未登入者(只要判斷 $_SESSION['group'] 不存在即可),另外一個是已登入,但身份不是管理員者,只要符合其一,就加入截止時間必須大於現在時間(尚未截止之意),以及活動是開啟狀態的條件。


:::

書籍目錄

展開 | 闔起

http%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbsn%3D27%26tbdsn%3D750

計數器

今天: 472472472
昨天: 3438343834383438
總計: 7390801739080173908017390801739080173908017390801