0

静的ページと管理者が編集可能なニュースとコンテンツを含む Web サイトを作成しています。管理者ビューとパブリック ビューを分けたい。これはビューを分割する良い方法ですか、それとも提案できるより良い方法はありますか? 基本的に同じビューが必要ですが、トピックのコンテンツを変更するためのフォームベースのテキスト領域を持つのは管理者だけです。

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);
    }
  }  
}
}
4

1 に答える 1

1

管理ビューがページ間で共通の場合、ページの適切な場所にビューとしてロードできます。

if($is_admin){
$this->load->view('admin_toolbar');
}else{
$this->load->view('generic_toolbar');
}

または、管理ビューがページ間で共通でない場合は、ページに送信するデータにフラグを含めることができます。

(コントローラー内)

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

(ビューで)

if($is_admin):
//output admin related html here.
endif
于 2012-08-06T06:08:13.073 に答える