模板建筑

时间:2011-08-14 01:54:58

标签: php codeigniter

使用Template Library Here并且仍然有点困惑我应该存储我的页眉和页脚文件以及它们是如何形成的。

控制器:

class Kowmanager extends CI_Controller {

public function __construct()
{
    $this->load->helper('url');
    $this->load->library('tank_auth');
    $this->load->library('template');
    parent::__construct();

}

function index()
{
    if (!$this->tank_auth->is_logged_in()) {
        redirect('/auth/login/');
    } else {
        $data['user_id']    = $this->tank_auth->get_user_id();
        $data['username']   = $this->tank_auth->get_username();
        $this->load->view('welcome', $data);
    }
}

}

/* End of file kowmanager.php */
/* Location: ./application/controllers/kowmanager.php */

我想要发生的是加载页眉和页脚文件,然后将它加载到它将加载活动模型的位置,因为它有'登录和注册以及其他但是那些将有自己的内容并且它将会在页眉和页脚之间加载。

编辑:我只是对页眉页脚文件放在哪里感到困惑

有没有人对此有任何想法?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你想在页眉和页脚之间加载一个视图吗?

我遇到了同样的问题,最后提出了使用库进行渲染的想法。

我所做的是使用以下内容创建文件libraries/render.php

class render
{
    private $CI;
    function __construct ()
    {
        parent::__construct();
        $this->CI &= get_instance();
    }
    function view ($activeView, $params, $title)
    {
        $this->CI->load->view('template/header.php', array('title'=>$title));
        $this->CI->load->view($activeView, $params);
        $this->CI->load->view('template/footer.php', array('navbar'=>$this->RenderFooterNavBar()));
    }

    private function RenderFooterNavBar ()
    {
        $bits = array('Home','About Us', 'Contact'); //You could get these from anywhere
        return $this->CI->load->view('template/modules/footernavbar', array('bits'=>$bits), TRUE); //returns the rendered output of that view
    }
}

使用以下文件:
template/header.php

<html>
<head>
    <title><?php echo $title; ?></title>
</head>
<body>

template/footer.php

</body>
</html>

template/modules/footernavbar

<ul>
<?php
foreach ($bits as $item)
    echo "<li>$item</li>";
?>
</ul>

然后使用:

function index ()
{
    $this->render->view('post', $data, 'Blog Post');
}

注意,这应该适用于任何模板系统,只需使用模板系统使用的内容调整load->view。如果您想从数据库中提取内容,这也是呈现页眉/页脚所需数据的好方法,只是反映了我对RenderFooterNavBar ()函数所做的事情。

希望有所帮助,
最大