我不知道這是否會對您有所幫助,但這是我在開始使用更高級的方法之前最長時間完成模板系統的方式。
上蓋:觀點/ INC/top_head.php
<html>
<head>
<!-- all of your imports you want across all pages -->
底封頭:觀點/ INC/bottom_head.php
我做這種方式讓我可以分裂,添加自定義Javascript的東西,並可能帶來特殊情況下的進口。
</head>
<body>
<div id="main_container">
<div id="navigation">
<?php
// DO YOUR NAVIGATION MAGIC HERE
if($is_logged_in) :
// BAM MAGIC DONE
else :
// No magic show here
endif;
?>
</div>
頁腳:觀點/ INC/footer.php
在這裏,您將投入您的頁腳的東西等等....
</div>
</body>
現在我們在A點我們需要將內容實際填充到模板中
索引頁面:/ views/some_controller/index .php
<?php $this->load->view('inc/top_head.php'); ?>
<?php $this->load->view('inc/bottom_head.php;) ?>
<h1>Hello</h1>
<p>Some filler content and stuff I guess would go here...Of course</p>
<?php $this->load->view('inc/footer.php'); ?>
因此,我們有一個快速的模板系統。現在向你展示我爲控制器做了什麼
<?php
class Some_Controller extends Controller {
public $page_data;
public function __construct() {
parent::__construct(); // Load parent constructor
// This is page data that we obviously don't want to keep retyping
$this->page_data = array(
'is_logged_in' => FALSE, // Obviously do some test here
'page_title' => 'Some Title'
);
}
public function index() {
$this->_load('some_controller/index');
}
/** Should think of a better name but meh */
private function _load($view) {
$this->load->view($view, $this->page_data);
}
}
我希望這可以幫助你。請注意,這是一個快速寫作。如果我真的希望將其投入生產,我會將_load
函數轉換爲父類並對其進行擴展。我也可能會隨着它移動page_data
變量。
或者因爲插件被棄用而成爲幫手;) – AlienWebguy 2011-06-13 00:56:53