2012-08-06 22 views
0

我正在創建一個帶有靜態頁面和管理可編輯新聞和內容的網站。我想分開管理員和公衆意見。這是分開視圖的好方法嗎?還是有更好的方法可以建議。我想要基本相同的視圖,但只有管理員將有一個基於表單的文本區域來更改主題的內容。這是一個在Codeigniter中將我的應用程序分爲管理員和公衆的好方法嗎?

MY_Controller.php:

class MY_Controller extends CI_Controller { 

    protected $data = array(); 

    function __construct() { 
    parent::__construct(); 
    } 
    class Admin_Controller extends MY_Controller { 

    function __construct() 
    { 
     parent::__construct(); 
     // Check login, load back end dependencies 
    } 
    function render_page($view) { 
    if(! $this->input->is_ajax_request()) 
    { 
     $this->load->view('templates/header', $this->data); 
    } 
    $this->load->view($view, $this->data); 

    if(! $this->input->is_ajax_request()) 
    { 
    $this->load->view('templates/menu'); 
    $this->load->view('templates/footer', $this->data); 
    } 
    } 
} 
class Public_Controller extends MY_Controller { 

    function __construct() 
    { 
     parent::__construct(); 
     // Check login, load back end dependencies 
    } 


    function render_page($view) { 
    if(! $this->input->is_ajax_request()) 
    { 
     $this->load->view('templates/header', $this->data); 
    } 
    $this->load->view($view, $this->data); 

    if(! $this->input->is_ajax_request()) 
    { 
    $this->load->view('templates/menu'); 
    $this->load->view('templates/footer', $this->data); 
    } 
    } 
} 
} 

回答

1

如果管理視圖跨頁是常見的,你可以在你的頁面,如一個適當的點加載它作爲一個視圖。或者,如果管理視圖在頁面間不常見,則可以在發送到頁面的數據中包含一個標誌。

(在控制器)

$this->data['is_admin'] = true; 

(鑑於)

if($is_admin): 
//output admin related html here. 
endif 
+0

好點....... – mrsrinivas 2012-08-06 08:42:22

相關問題