我不知道这是否会对您有所帮助,但这是我在开始使用更高级的方法之前最长时间完成模板系统的方式。
上盖:观点/ 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