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

如何在smarty中增加類似foreach的功能自動加載數(shù)據(jù)

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

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

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

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

/**
* 加載數(shù)據(jù)
* @param $tag_args
*/
function _complie_load_start($tag_args)
{
 $key = substr(md5($tag_args), 8, 16);   //根據(jù)參數(shù)生成一個特殊的變量名
 $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標簽處理函數(shù)進行處理
 return $this->_compile_foreach_start($tag_args);
}

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

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

相關(guān)文章

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

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

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

    php的ajax框架xajax入門與試用介紹

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

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

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

    PHP一致性hash分布式算法封裝類定義與用法示例

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

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

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

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

    下面小編就為大家?guī)硪黄猅hinkPHP刪除欄目(實現(xiàn)批量刪除欄目)。小編覺得挺不錯的?,F(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • php 抽象類的簡單應(yīng)用

    php 抽象類的簡單應(yīng)用

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

    php寫入txt亂碼的解決方法

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

    php實現(xiàn)的簡單數(shù)據(jù)庫操作Model類

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

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

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

最新評論

封开县| 积石山| 原平市| 道真| 郴州市| 彰武县| 杨浦区| 巩留县| 大连市| 双牌县| 汪清县| 海兴县| 邓州市| 新沂市| 平武县| 鄂温| 台东县| 商水县| 杭锦旗| 平阳县| 武功县| 论坛| 定州市| 南开区| 凤冈县| 仙桃市| 棋牌| 玉屏| 仁怀市| 湖南省| 阜城县| 平凉市| 色达县| 鞍山市| 平远县| 富蕴县| 新乡县| 象州县| 驻马店市| 德清县| 吉首市|