我将此模板库用于Codeigniter。
我不太明白如何使用他的例子,高级使用#3,来加载多个模板。我觉得下面的load_main()函数缺少第二个模板的加载:
function load_main($view = '', $view_data = array(), $return = FALSE)
{
$this->set('nav_list', array('Home', 'Photos', 'About', 'Contact'));
$this->load('template', $view, $view_data, $return);
//shouldn't this be there?=> $this->load('template2', $view, $view_data, $return);
}
我说得对吗?如果是的话,你能给出一些关于控制器和视图文件外观的提示吗?
以下是作者对控制器的看法:
$this->template->set('nav', 'About');
$this->template->set('title', 'About me');
$this->template->load_main('about');
和模板视图:
<html>
<body>
<div id="contents"><?= $contents ?></div>
<div id="footer">Copyright 2008</div>
<ul class="navigation">
<?php foreach($nav_list as $i => $nav_item): ?>
<li class="<?= ($nav == $nav_item ? 'selected' : '')?>">
<?= anchor($nav_item, $nav_item) ?>
</li>
<?php endforeach ?>
</ul>
</body>
</html>
我不认为它缺少了什么,但有点不清楚它是如何工作的。。。
function load_main($view = '', $view_data = array(), $return = FALSE)
{
$this->set('nav_list', array('Home', 'Photos', 'About', 'Contact'));
$this->load('template', $view, $view_data, $return);
}
所以这个方法使用"模板"模板并设置一些导航内容。$this->template->load_main('test');
将使用"template"模板加载views/test.php。
因此,要使用不同的模板,请在模板文件(显然还有模板)中创建一个新的加载方法
function load_radical_template($view = '', $view_data = array(), $return = FALSE)
{
$this->load('radical_template', $view, $view_data, $return);
}
现在$this->template->load_radical_template('test');
将使用"radict_template"模板加载views/test.php。