Codeigniter加载多个模板

时间:2012-02-14 04:10:53

标签: php templates codeigniter view

我正在将此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> 

1 个答案:

答案 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。