2009-12-10 37 views

回答

2

在用戶會話中存儲使用的主題的名稱。然後在每個控制器構造函數中檢查值的存在,檢查數據庫中是否存在主題名稱,並將數據提供給視圖,然後由視圖進行處理,然後通過包含的頁眉處理該視圖。

該數據庫將是這樣的:

theme_id | theme_name | theme_css 
------------------------------------ 
1  | default | default.css 
2  | fancy  | fancy.css 

您的意見將所有包含這樣的事情:

<?php include header.php ?> 

header.php中就包含有此:

<link href="/css/<?=$theme_data->css?>" rel="stylesheet" type="text/css" /> 

和你擴展標準控制器的基本控制器將如下所示:

<?php 
class Base_Controller extends Controller 
{ 
    protected $theme = 'default'; 
    function __construct() 
    { 
     parent::Controller(); 
     if ($this->session->userdata('theme') 
     { 
      $this->theme = $this->session->userdata('theme'); 
     } 
     $this->view->data['theme_data'] = $this->get_theme_data(); 

    } 

    protected function get_theme_data() 
    { 
     // return data from database using $this->theme 
    } 

} 
相關問題