我正在将此Template library用于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>
答案 0 :(得分:2)
我不认为它遗漏了什么,但它有点不清楚它是如何工作的......
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');
将使用“模板”模板加载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');
将使用“radical_template”模板加载views / test.php。