Codeigniter中的模板插件

时间:2013-02-24 02:31:07

标签: php codeigniter

我一直在使用和研究Collin Williams模板插件(http://williamsconcepts.com/ci/codeigniter/libraries/template/reference.html#manipulation),我已经在CI的论坛上发布了这个问题,但我认为去年的最后一篇文章可能没有受到Colllin或者wat的监控但我想我只需要发布这里也许你们可以提供帮助。

CI论坛上的原帖

  

Hello Collin,

I’ve been studying your template plugin lately, as i was following your guide, 
i came across this line of code

$data = array('name' => 'John Smith', 'birthdate' => '11/15/1950'); 
$this->template->write_view('content', 'user/profile', $data, TRUE); 
     

在视图文件中是否有点令人困惑   以mymastertemplate.php为例,我如何访问$ data数组呢   它必须是第一个参数定义的$ content。一个地区,或通过   $ name和$ birthdate? ... cuz'它说$ content会显示   数据数组?它有点令人困惑。希望你能开导我。

基本上就是我的问题。

1 个答案:

答案 0 :(得分:0)

Template.php库上,我们可以看到函数write_view()。现在,关注$data = NULL。现在然后在APPPATH.'views /'.$暗示找到一个已存在数据的文件。'。php'所以我认为$args[0]应该是一个加载并打破它的文件,而不是在{上加载一个视图模板{1}}。

$data

另一方面,function write_view($region, $view, $data = NULL, $overwrite = FALSE) { $args = func_get_args(); // Get rid of non-views unset($args[0], $args[2], $args[3]); // Do we have more view suggestions? if (count($args) > 1) { foreach ($args as $suggestion) { if (file_exists(APPPATH .'views/'. $suggestion . EXT) or file_exists(APPPATH .'views/'. $suggestion)) { // Just change the $view arg so the rest of our method works as normal $view = $suggestion; break; } } } $content = $this->CI->load->view($view, $data, TRUE); $this->write($region, $content, $overwrite); } 应该是一个数组,它将响应Codeigniter库上的View模板数据(CI的标准视图:$data

$this->CI->load->view(...)

在模板文件'/user/profile.php'上使用例如:

HTML / PHP模板文件$data = array('name' => 'John Smith', 'birthdate' => '11/15/1950'); $this->template->write_view('content', 'user/profile', $data, TRUE);

profile.php

正如我所看到的,由于文档的原因,CONTENT var必须是ARRAY ...

Your name: <?php echo $data["name"]; ?>
Your name: <?php echo $data["birthdate"]; ?>

必须将区域定义为模板,因此如果您没有$template['default']['regions'] = array( 'header' => array( 'content' => array('<h1>Welcome</h1>','<p>Hello World</p>'), ### <----- AS EXAMPLE 'name' => 'Page Header', 'wrapper' => '<div>', 'attributes' => array('id' => 'header', 'class' => 'clearfix') ) ); 区域不起作用:

header

!!!!! 简单地说,他无法访问存储数据$template['default']['regions'] = array( 'header', 'content', 'footer', ); 的私有访问变量_ci_cached_vars。相关主题:CodeIgniter shared data between calls to load->view