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

新手求助!关于模板页头和页尾的调用问题

[复制链接]
发表于 2009-5-19 10:48:25 | 显示全部楼层 |阅读模式
本帖最后由 wangqiu1027 于 2009-5-19 10:50 编辑

制作网站前台页面的时候,遇到一个问题:我将网页的头和尾分离出来,在模板中使用
<?php include('index_header_view.php');?>
方式来调用页头,但是这样做会产生一个问题,比如在页头中存在一个变量,内容是从数据库中提取的动态信息
假定现在又十几个网页模板都调用了同一个头文件
那么我就必须在调用这十几个模板的控制器方法中重复的从数据库中调用同一个数据,赋值到同一个变量中
比如,index_header_view.php中有一个变量 $title
方法fun1,fun2,fun3 调用的模板中都使用了这个头文件
那么各个控制器方法中就都要重复的取出来这个值
class Text extends Controller
{
  function Test()
  {
   parent::Controller();   
  }
  
  function fun1()
  {
       $title = "123";
       $data['title'] = $title;
  }
  
  function fun2()
  {
        $title = "123";
        $data['title'] = $title;

  }
   function fun3()
  {
        $title = "123";
        $data['title'] = $title;

  }
}

我想知道对于这种情况,怎么样可以变的简单一些
发表于 2009-5-19 11:47:45 | 显示全部楼层
Helper
发表于 2009-5-19 11:49:47 | 显示全部楼层
本帖最后由 caincheung 于 2009-5-19 11:51 编辑

可能我的方法有点麻烦
自己写了一个Helper,读取远程文件。
在View里
<?php echo cevin_http_open(site_url('widget/header')); ?>

或者写到文件。然后读取调用
发表于 2009-5-19 11:58:54 | 显示全部楼层
扩展 控制器类 然后增加一个提取title的方法 get_title()

在你的 自定义控制器中 对应的地方使用 $this->get_title();
发表于 2009-5-19 12:51:37 | 显示全部楼层
这问题我刚在另一个帖子里回答了。。。。

http://codeigniter.org.cn/forums ... ;fromuid=2#pid12004

如果要在 header 或者 footer 里加入数据处理,应该使用 HMVC,看这个:
http://codeigniter.org.cn/forums/thread-1319-1-2.html
 楼主| 发表于 2009-5-19 14:26:33 | 显示全部楼层
谢谢大家的回复 ,我已经找到了思路
发表于 2009-5-19 23:21:08 | 显示全部楼层
3# caincheung
你好。我和楼主的问题基本一样,就是页头和页尾,都有部分变量。页头中的CSS调用和js脚本,title的值等,都需要变量设定。页尾的更多。因此,如果单纯的在每个控制器里手动指定,代码量太大。
管理员提供了另外一种模式,但现在CI还没太搞懂,所以不敢贸然尝试,能否请您分享一下一下的解决方案和代码。
非常感谢。
发表于 2009-5-27 22:23:21 | 显示全部楼层
可以直接在view页面里
<?php $this->load->view("header.php");?>.

本版积分规则