用户
 找回密码
 入住 CI 中国社区
搜索
查看: 8575|回复: 14
收起左侧

如何分离网站的页头页脚

[复制链接]
发表于 2008-7-4 00:13:15 | 显示全部楼层 |阅读模式
由于页头和页脚都有动态数据,所以不能在view里面用include

我现在的做法是页头对应一个controller,页脚对应一个controller

就是不知道怎么组装起来- -
发表于 2008-7-5 16:36:14 | 显示全部楼层
你问的问题很怪啊?

在control中调用view的时候把动态数据用数组参数传递过去不行么?
-------------------------------------------------------------------
给视图添加动态数据

数据通过控制器以一个数组或是对象的形式传入视图 , 这个数组或对象作为视图载入函数的第二个参数 .下面便是使用数组的示例:

$data = array(
'title' => 'My Title',
'heading' => 'My Heading',
'message' => 'My Message'
);

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

这里是使用对象的示例:

$data = new Someclass();
$this->load->view('blogview', $data);

-------------------------------------------------------------------

另外一个方法是用选择语句加载不同的view,这也是一种 “动态”的页头页脚。

[ 本帖最后由 nase 于 2008-7-5 16:40 编辑 ]
发表于 2008-7-5 18:20:47 | 显示全部楼层
两个方案,一是使用hmvc这样的支持模块开发的第三方类库,可以用ci搜索引擎搜索。另外,也可以直接装载头尾视图。
发表于 2008-7-7 13:50:16 | 显示全部楼层
我用装载头尾视图,哈哈
发表于 2008-7-7 17:19:57 | 显示全部楼层
发表于 2008-7-7 21:40:18 | 显示全部楼层
$this->load->view('blogview', $data);

问个离题的问题
$data 变量是固定不变的,可以用其他变量代替吗,比如 $data1,$data2
发表于 2008-7-8 00:15:10 | 显示全部楼层
晕倒,变量名随便啊!
大家可别忘记了 PHP 的知识啊!别把 CI 想的太神乎其神了,他就是很普通的 PHP 代码。
发表于 2009-8-27 19:56:56 | 显示全部楼层
2# nase
楼主的问题一点都不奇怪,到是奇怪2楼的理解能力。
楼主的意思是每个Controller中都有一些相同的内容,而这些内容不是简单的手动指定,需要在执行有关的数据库操作,另外楼主不希望在每个Controller中每次指定,想找到一个方法,把相同的内容放在一个模块或控制器中,需要的时候引用,就好比从前的include或require。
发表于 2009-8-28 10:01:15 | 显示全部楼层
用CI的 $head=$this->load->view('head',$data,true);
然后,把$head 当作变量传到需要加入的页面就行了。
例如viewdata['head']=$head;
$this->load->view('index',$view,data);
然后在views的inde.php页面里的头部位置写echo $head;
这样就load头进来了。 尾一也样
发表于 2009-8-28 14:28:37 | 显示全部楼层
楼上,你的$head变量中的值是哪里来的?如果是手动指定简单的内容,到是可行。可如果每次$head中的变量都需要查找数据库,你不是仍然需要在每个控制器中执行$data的赋值计算操作么。
目前,解决这个问题的办法,只有两个。
一个是版主hex的解决方案,另外一个就是扩展controller控制器,把各个页面都需要的动态数据计算及查找,统统放在这个扩展里。然后在每个控制器中调用。
当然,楼上如果认为每个页面都指定一遍也无所谓,那就失去讨论的意义了。

本版积分规则