:::

4-2 根據不同動作自動載入相對應樣板

一、先替各個動作準備好前端界面

  1. 我們目前有三個動作:
    1. index.php」沒有 op 時,主內容區顯示「所有文章」界面,亦即 main.tpl,這個不用處理
    2. index.php?op=embed」主內容區顯示「產生內嵌語法」界面 embed.tpl,做個空的 templates/embed.tpl,內容之後再做
    3. admin.php」沒有 op 時,管理頁面的主內容區顯示「發布新聞」界面 create.tpl

二、根據變數自動載入

  1. 修改 index.phpadmin.php$smarty->assign('now_op', $op); 將目前的動作送至樣板
  2. 順便替 index.phpswitch 預設值設定一個 $op 值為 main(這樣才能載入 main.tpl
    <?php
    require 'function.php';
    require 'vendor/autoload.php';
    use Smarty\Smarty;
    $smarty = new Smarty();
    
    // 過濾外部傳來變數
    $op = filter_input_var('op');
    
    switch ($op) {
        case 'embed':
            # code...
            break;
    
        default:
            $op = "main";
            break;
    }
    
    $smarty->assign('now_op', $op);
    $smarty->display('index.tpl');
    

     

  3. admin.phpswitch 預設值也設定一個 $op 值為 create(這樣才能載入 create.tpl
    <?php
    require 'function.php';
    require 'vendor/autoload.php';
    use Smarty\Smarty;
    $smarty = new Smarty();
    
    // 過濾外部傳來變數
    $op = filter_input_var('op');
    
    switch ($op) {
        default:
            $op = "create";
            break;
    }
    
    $smarty->assign('now_op', $op);
    $smarty->display('index.tpl');
    

     

  4. 最後最關鍵處,請修改 index.tpladmin.tpl ,主內容區可以根據 $now_op 的值來自動 include 不同的樣板檔(樣板中的變數要用``隔開)
    <main class="col-md-9">
        {include file="`$now_op`.tpl"}
    </main>

     


:::

書籍目錄

展開 | 闔起

http%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D2007%26tbsn%3D55

計數器

今天: 2730273027302730
昨天: 2259225922592259
總計: 7951528795152879515287951528795152879515287951528