最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何在smarty中增加類(lèi)似foreach的功能自動(dòng)加載數(shù)據(jù)

 更新時(shí)間:2013年06月26日 09:55:27   作者:  
本篇文章是對(duì)在smarty中增加類(lèi)似foreach的功能自動(dòng)加載數(shù)據(jù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
在smarty中使用自定義插件來(lái)加載數(shù)據(jù)(見(jiàn):編寫(xiě)Smarty插件在模板中直接加載數(shù)據(jù)的詳細(xì)介紹),在使用的時(shí)候還是感覺(jué)不夠方便,靈機(jī)一動(dòng)就想寫(xiě)成類(lèi)似foreach那種標(biāo)簽:

第一步:在Smarty_Compiler.class.php的_compile_tag函數(shù)中增加:
復(fù)制代碼 代碼如下:

//加載數(shù)據(jù)的開(kāi)始標(biāo)簽
case 'load':
 $this->_push_tag('load');
 return $this->_complie_load_start($tag_args);
 break;
//加載數(shù)據(jù)的結(jié)束標(biāo)簽
case '/load':
 $this->_pop_tag('load');
 return "<?php endforeach; endif; unset(/$_from); ?>";
 break;

第二步:增加一個(gè)方法:
復(fù)制代碼 代碼如下:

/**
* 加載數(shù)據(jù)
* @param $tag_args
*/
function _complie_load_start($tag_args)
{
 $key = substr(md5($tag_args), 8, 16);   //根據(jù)參數(shù)生成一個(gè)特殊的變量名
 $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'], 1, -1)));
 //定義新變量
 $this->_tpl_vars[$key] = $db->get_block_list(array(substr($attrs['where'], 1, -1)), $attrs['limit']);
 $tag_args = "from=/${$key} " . $tag_args;

 //調(diào)用foreach標(biāo)簽處理函數(shù)進(jìn)行處理
 return $this->_compile_foreach_start($tag_args);
}

這樣就可以在模板中使用load這個(gè)標(biāo)簽了。用法例如:
復(fù)制代碼 代碼如下:

{load table="test" where="`id`<100" limit=10 item=rec}
   ...
{/load}

相關(guān)文章

  • PHP5.5新特性之yield理解與用法實(shí)例分析

    PHP5.5新特性之yield理解與用法實(shí)例分析

    這篇文章主要介紹了PHP5.5新特性之yield理解與用法,結(jié)合實(shí)例形式分析了php5.5 yield生成器功能、原理、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-01-01
  • php的ajax框架xajax入門(mén)與試用介紹

    php的ajax框架xajax入門(mén)與試用介紹

    xajax功能很簡(jiǎn)單,但很靈活!~它不象其它一些大的框架,功能確實(shí)強(qiáng)大,但執(zhí)行速度不敢恭維。。功能雖多,但不夠靈活。api多,學(xué)起來(lái)簡(jiǎn)直如同學(xué)習(xí)一門(mén)新的語(yǔ)言。
    2010-12-12
  • php實(shí)現(xiàn)圖片局部打馬賽克的方法

    php實(shí)現(xiàn)圖片局部打馬賽克的方法

    這篇文章主要介紹了php實(shí)現(xiàn)圖片局部打馬賽克的方法,實(shí)例分析了php針對(duì)圖片操作的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-02-02
  • PHP一致性hash分布式算法封裝類(lèi)定義與用法示例

    PHP一致性hash分布式算法封裝類(lèi)定義與用法示例

    這篇文章主要介紹了PHP一致性hash分布式算法封裝類(lèi)定義與用法,結(jié)合完整實(shí)例形式分析了一致性hash分布式算法的原理、實(shí)現(xiàn)及使用方法,需要的朋友可以參考下
    2018-08-08
  • PHP同時(shí)連接多個(gè)mysql數(shù)據(jù)庫(kù)示例代碼

    PHP同時(shí)連接多個(gè)mysql數(shù)據(jù)庫(kù)示例代碼

    這篇文章主要介紹了PHP同時(shí)連接多個(gè)mysql數(shù)據(jù)庫(kù)的具體實(shí)現(xiàn),需要的朋友可以參考下
    2014-03-03
  • ThinkPHP刪除欄目(實(shí)現(xiàn)批量刪除欄目)

    ThinkPHP刪除欄目(實(shí)現(xiàn)批量刪除欄目)

    下面小編就為大家?guī)?lái)一篇ThinkPHP刪除欄目(實(shí)現(xiàn)批量刪除欄目)。小編覺(jué)得挺不錯(cuò)的?,F(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • php 抽象類(lèi)的簡(jiǎn)單應(yīng)用

    php 抽象類(lèi)的簡(jiǎn)單應(yīng)用

    我想博客中的 文章列表和單個(gè)的文章閱讀 統(tǒng)一起來(lái),我覺(jué)得除了sql查詢語(yǔ)句結(jié)構(gòu)不同,HTML代碼不同,其它也就一樣。不過(guò)話說(shuō)回來(lái),這兩個(gè)都是主要功能,所以這的確有點(diǎn)不適合,不過(guò)昨晚讀了一點(diǎn)設(shè)計(jì)模式,好歹得寫(xiě)點(diǎn)啥好。
    2011-09-09
  • php寫(xiě)入txt亂碼的解決方法

    php寫(xiě)入txt亂碼的解決方法

    在本篇文章里小編給大家分享的是關(guān)于php寫(xiě)入txt亂碼的知識(shí)點(diǎn)以及解決方法,有需要的朋友們參考下。
    2019-09-09
  • php實(shí)現(xiàn)的簡(jiǎn)單數(shù)據(jù)庫(kù)操作Model類(lèi)

    php實(shí)現(xiàn)的簡(jiǎn)單數(shù)據(jù)庫(kù)操作Model類(lèi)

    這篇文章主要介紹了php實(shí)現(xiàn)的簡(jiǎn)單數(shù)據(jù)庫(kù)操作Model類(lèi),結(jié)合實(shí)例形式分析了php數(shù)據(jù)庫(kù)操作模型類(lèi)的定義與使用技巧,包括數(shù)據(jù)庫(kù)的基本增刪改查等功能,需要的朋友可以參考下
    2016-11-11
  • PHP編程過(guò)程中需要了解的this,self,parent的區(qū)別

    PHP編程過(guò)程中需要了解的this,self,parent的區(qū)別

    this是指向?qū)ο髮?shí)例的一個(gè)指針,在實(shí)例化的時(shí)候來(lái)確定指向;self是對(duì)類(lèi)本身的一個(gè)引用,一般用來(lái)指向類(lèi)中的靜態(tài)變量;parent是對(duì)父類(lèi)的引用,一般使用parent來(lái)調(diào)用父類(lèi)的構(gòu)造函數(shù)。
    2009-12-12

最新評(píng)論

酒泉市| 隆林| 纳雍县| 云霄县| 安塞县| 吉林省| 阿克| 馆陶县| 饶阳县| 巴林右旗| 阿克| 雷州市| 蛟河市| 江口县| 永年县| 云南省| 包头市| 梁山县| 临城县| 武穴市| 和政县| 乐业县| 留坝县| 阿坝县| 桃园县| 新余市| 尤溪县| 柞水县| 东源县| 台北县| 梓潼县| 崇仁县| 望城县| 二连浩特市| 馆陶县| 贡山| 吉木乃县| 德安县| 镇原县| 花垣县| 定兴县|