0
原諒我可能是一個非常愚蠢的問題。我已經研究過這個話題,但是我找不到 有關我的問題的任何相關答案。PHP代碼點火器動態邊欄
我想爲我的網站生成一個動態邊欄。我希望控制器指定加載哪個邊欄 。由於我的大多數頁面都使用相同的模板樣式,因此我創建了模板頁面(頁眉,頁腳,側邊欄),這些頁面通過 包括在模板視圖中。我將所需的邊欄字符串傳遞給模板,然後加載正確的邊欄文件。 到目前爲止,這麼好,或者所以我認爲。
使用這種方法生成一個側邊欄給我留下了一些問題..
1)每個控制器需要通過正確的數據下降到側邊欄。隨着控制器數量的增長,這可能會成爲問題。它似乎是一個邊欄控制器是爲了..但是我讀的所有內容都告訴我,在控制器內調用控制器從 是不好的。
2.)替代似乎是直接從視圖調用模型..再次我理解這打破MVC登錄作爲 處理和邏輯進入視圖..
任何輸入將是巨大的。實施例從一個控制器,模板視圖和電流(不正確地構造的)邊欄代碼..
###### CONTROLLER EXAMPLE
<?php
class League extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->data['login_page'] = $this->session->userdata('username') != ""?'logged_in':'login';
$this->data['error'] = $this->uri->segment(3) == "error"?"Username or password incorrect.":"";
// Default settings
$this->data['sidebar'] = 'sidebar';
$this->data['title'] = 'League';
}
/**********************************************************/
public function index()
{
$this->data['content'] = 'league/index';
$this->data['league_registration'] = $this->league_model->league_list('registration');
$this->load->view('template', $this->data);
}
}
?>
-
###### TEMPLATE VIEW EXAMPLE
<?php $this->load->view('includes/header',$data); ?>
<div class="left_col"><h2 class="header"><?php echo $title; ?></h2><?php $this->load->view($content); ?></div>
<?php $this->load->view('includes/'. $sidebar); ?>
<?php $this->load->view('includes/footer'); ?>
-
##### EXAMPLE SIDEBAR VIEW --- DONE INCORRECTLY I KNOW
<?php $match_result = $this->result_model->latest_match_result(); ?>
<?php $user_league_result = $this->league_model->user_active_league($this->session->userdata('user_id')); ?>
<?php $news_result = $this->news_model->latest_news(5); ?>
<?php $user_id = $this->session->userdata('user_id'); ?>