:::

6-7-1 讀出指定年度的文章

  1. 由於選項上有連結 index.php?year={$yc.year},所以,點了之後,網址會變成如:index.php?year=2021,也就是我們要讓系統只列出2021年文章即可
  2. 由於有新傳入外來變數到 index.php ,所以理論上應該要新增過濾 $year,但因為我們在 header.php 中就過濾過了,所以,在此不用再次過濾
  3. index.php 的流程中 index() 函式加入 $year,變成第四個參數
    <?php
    // 預設為文章列表
    default:
        $all_news = index($p, $cate_id, $keyword, $year);
        $smarty->assign('all_news', $all_news);
        break;

     

  4. 修改 index.php index() 函式,年度搜尋和關鍵字搜尋其實很類似,只不過只要搜尋 date 欄位即可,而且,年度一定在左邊,只有右邊日期會不同,所以把 % 萬用字元放到右邊即可。
    // 列出所有文章
    function index($p, $cate_id = 0, $keyword = '', $year = '')
    {
        global $db;
        $where = '';
        $all_news = $value = [];
    
        if ($cate_id) {
            // 是否要分類
            $where = "WHERE `cate_id`= ?";
            $value = [$cate_id];
        } elseif ($keyword) {
            // 關鍵字搜尋
            $where = "WHERE `title` like ? or `info` like ? or `content` like ? or `date` like ?";
            $value = ["%{$keyword}%", "%{$keyword}%", "%{$keyword}%", "%{$keyword}%"];
        } elseif ($year) {
            // 年度搜尋
            $where = "WHERE `date` like ?";
            $value = ["{$year}%"];
        }
    
        ...略...
    
        // 產生分頁內容
        $paginator = new Paginator($total, $news_per_page, $p, "index.php?p=(:num)&cate_id={$cate_id}&keyword={$keyword}&year={$year}");
    
        ...略...
    
        return $all_news;
    }
  5. 分頁部份一樣記得加入&year={$year},如此才能針對年度的文章做分頁
  6. 如此就大功告成了!
  7. 前台顯示頁面至此算是完成了!

:::

書籍目錄

展開 | 闔起

https%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbsn%3D52%26tbdsn%3D1846

計數器

今天: 4380438043804380
昨天: 5069506950695069
總計: 5134828513482851348285134828513482851348285134828