CodeIgniter Common Header包含

时间:2010-12-03 15:27:59

标签: codeigniter view controller

我是CodeIgniter的新手,但我想我已经掌握了它的工作原理。

通常当我创建一个网站,比如一个5页的网站时,我将我的头文件放在每个页面中包含的php文件中,这样如果我必须改变标题,我只需要在一个页面中现场而不是改变它五次。

在我的CodeIgniter应用程序中,我的控制器中的每个页面都有一个函数,它根据函数加载不同的视图。例如,

    public function Index() {

    $data = array();
    $this->load->view('index',$data);

}

public function blog() {

    $data = array();
    $this->load->view('inner1',$data);

}

然后我可以将所有逻辑都放在控制器中。

有一个引用标题的最佳方法是什么?我应该将它作为变量放在控制器中,然后将其作为数据发送到每个视图吗?

此外,如果有更有效的方法,请提出建议!

谢谢!

3 个答案:

答案 0 :(得分:5)

我通常做的是在视图中创建标题,然后将标题视图添加到索引上方的控制器...您也可以使用页脚执行相同操作。

所以它会是这样的:

public function blog() {

   $data = array();
   $this->load->view('Header'); // just the header file
   $this->load->view('inner1',$data); //your main content
}

有意义吗?

添加:您也可以在其中包含整个头标记,例如元标记,标题,CSS链接等。但我通常会将它们放在另一个视图中,因为有时它们会因页面而异。

答案 1 :(得分:5)

我经常使用CodeIgniter。我的/ views文件夹中有一个名为/ common的文件夹。在那里,我把我的footer.php,sidebar.php,header.php等等。

我的观看文件如下:

$this->load->view('header');
<div id"main">
.....
</div>


$this->load->view('footer');

我的控制器文件如下:

public function blog() {
   $this->data['title'] = "Blog";
   $this->data['meta_tags'] = $meta;
   $this->data['entries'] = $entries;

   $this->load->view('blog',$this->data);
}

请注意,稍后可以在标题模板中调用变量$ title或$ meta。通过这种方式,我可以对common / header.php和整个站点的持久化进行更改。

祝你好运!

PD:我建议使用Carabiner管理每个控制器顶部的资产,然后将其显示在header.php上

答案 2 :(得分:1)

你看过那里的任何模板项目吗?

http://williamsconcepts.com/ci/codeigniter/libraries/template/

http://philsturgeon.co.uk/index.php/code/codeigniter-template

这些允许您创建主模板(如果需要,可以创建更多模板),您可以在单个文件中进行站点范围的更改。这些更改可能包括标题,但它们也可能包含其他区域。