知识大全 如何在smarty中增加类似foreach的功能自动加载数据

Posted

篇首语:我自横刀向天笑,去留肝胆两昆仑。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 如何在smarty中增加类似foreach的功能自动加载数据相关的知识,希望对你有一定的参考价值。

  在smarty中使用自定义插件来加载数据(见 编写Smarty插件在模板中直接加载数据的详细介绍) 在使用的时候还是感觉不够方便 灵机一动就想写成类似foreach那种标签 第一步 在Smarty_Compiler class php的_pile_tag函数中增加

复制代码 代码如下: //加载数据的开始标签 case load : $this >_push_tag( load ); return $this >_plie_load_start($tag_args); break; //加载数据的结束标签 case /load : $this >_pop_tag( load ); return "<?php endforeach; endif; unset(/$_from); ?>"; break;

   第二步 增加一个方法

复制代码 代码如下: /** * 加载数据 * @param $tag_args */ function _plie_load_start($tag_args) $key = substr(md ($tag_args) ); //根据参数生成一个特殊的变量名 $attrs = $this >_parse_attrs($tag_args); //这里可以增加更多的处理 $class = (!isset($attrs[ class ]) || empty($attrs[ class ])) ? cls_crud : trim($attrs[ class ]); (!isset($attrs[ table ]) || empty($attrs[ table ])) && exit( `table` is empty! ); $db = $class::factory(array( table => substr($attrs[ table ] ))); //定义新变量 $this >_tpl_vars[$key] = $db >get_block_list(array(substr($attrs[ where ] )) $attrs[ limit ]); $tag_args = "from=/$$key " $tag_args; //调用foreach标签处理函数进行处理 return $this >_pile_foreach_start($tag_args);

   这样就可以在模板中使用load这个标签了 用法例如

复制代码 代码如下: cha138/Article/program/PHP/201311/21257

相关参考

知识大全 编写Smarty插件在模板中直接加载数据的详细介绍

编写Smarty插件在模板中直接加载数据的详细介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 asp.net程序中如何自动生成姓名拼音

  问  程序中如何自动生成姓名拼音  答  publicstringGetPYString(stringstr)    stringtempStr=;  foreach(charcinstr)   

知识大全 PHP中获得$Smarty.capture.name截获的输出

PHP中获得$Smarty.capture.name截获的输出  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 php遍历数组 list foreach each方法总结

在php中可以用来遍历数组的函数有很多如有for语句listeachforeach这四个函数这也是在php中遍历数组的几个主要的函数下面我来给大家介绍 foreach遍历数组我们在运用数组时

知识大全 foreach和yield

  foreach  foreach无需要知道集合中元素个数就可以迭代集合中的元素它其实是迭代器模式的一个包装就语言层面来说是while的另一种形式  usingSystem;  usingSyste

知识大全 C#中foreach基础使用方法

C#中foreach基础使用方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  昨天做老师的网站

知识大全 C#中foreach基础使用方法[1]

C#中foreach基础使用方法[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  昨天做老师

知识大全 C#中foreach基础使用方法[2]

C#中foreach基础使用方法[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  就是像开头

知识大全 php Smarty 模板使用方法详解

phpSmarty模板使用方法详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一模板中的注释

知识大全 深入解析php中的foreach问题

  php中引入了foreach结构这是一种遍历数组的简单方式相比传统的for循环foreach能够更加便捷的获取键值对在php之前foreach仅能用于数组php之后利用foreach还能遍历对象(