2011-03-31 157 views
1

我有关于在Codeigniter中查看的一些问题。关于视图的问题

如何构建我的设计,以后如何返回?我想建立我的标题,主要内容和菜单,页脚等等。

要建立一个设计,然后将其复制到我创建的每个新视图并不是一个好的解决方案。如果我更改了页脚中的内容,则更改将对整个网站生效。

有没有人有任何好的指导的任何链接如何使用最好的视图或在这里以一个好的方式解释。

+1

如果你先搜索过网站,你可能会找到[这个答案](http://stackoverflow.com/questions/1029960/how-to-deal-with-codeigniter-templates)。 – Kelly 2011-03-31 15:42:20

回答

1

你的感觉是对的,这根本不是一个好主意。这就是为什么大多数人使用某种模板系统结合他们的视图。

我用这个库:http://williamsconcepts.com/ci/codeigniter/libraries/template/(习惯,因为我不CI代码多了)

它从来没有给我麻烦,这是很容易设置。

+0

谢谢,它似乎工作得很好。 – Cornelis 2011-03-31 19:08:30

0

你应该使你的页眉,页脚,菜单等各自的视图。通过这种方式,当您想要更改页脚时,可以编辑该视图,然后每个使用该视图的控制器都将被更新。

有关多个视图文件的更多信息,请参阅CodeIgniter docs

0

这里有两个半选项(假设你不想安装某种插件)。

选项1是在您的意见中使用<?php $this->load->view('header'); ?>等。

选项2将在您的控制器中覆盖output函数,该函数接受一个参数(页面内容)并从那里操作它(添加视图和什么)。 选项2.5将覆盖基地CI_Controller并执行output函数的标准覆盖与上面相同。

在做选项2/2.5之前检查输出类的文档;您需要在回显之前将输出内容设置为空或空字符串,否则内容将显示两次。

0

走出控制器

if($query->result()) 
{ 
    **$data['blog']** = $query->result(); 
} 
    $data['title'] = 'LemonRose'; 
    $data['content'] = 'home/home_content'; //this is the content section, a separate view from header and footer 
    //$this->output->cache(60); 
    **$this->load->view('template1', $data);** 
} 

注意模板1

模板1(这是整个页面)

$this->load->view('tops/home'); 
$this->load->view($content); $content is the $data['content'] from above 
$this->load->view('bottoms/main_home'); 

那么,内容部分(家庭/ home_content)将有收到$数据的地方[博客]

foreach (**$blog** as $row){ //controller main 

$row->title = ucwords($row->title); //more code goes below