smarty是php開發中非常流行的一個模板,以前曾發過一篇文章php smarty中文截取外掛程式開發樣本是說明如何開發smarty外掛程式的,這篇文章將分享一下如何為smarty模板做一個for迴圈的擴充外掛程式,方面我們日常的程式開發。
首先說說這個for迴圈擴充是做什麼用的吧。今天在改以前的一個網站的時候,由於一些特定的原因需要在smarty模板中做一個for迴圈,雖然smarty是可以在模板中以{php}......{/php}標籤的形式來直接書寫php語句文法的。但由於迴圈中要用到模板中的變數的值,而在模板中直接寫的php語句沒辦法擷取到模板變數中的值,所以這個想法就行不通了,最後就想到是不是也可以實現在smarty模板中直接使用for迴圈呢?
下面是作者為smarty增加一個for迴圈擴充外掛程式的具體步驟。
(1)在smarty模板的安裝目錄下的plugins目錄內建立一個檔案,命名為 block.for.php ,然後在這個檔案裡面輸入如下代碼:
$v){switch($k){case 'start':case 'to':case 'step':$$k=(int)$v;break;default:$smarty->trigger_error("textformat: 未知屬性:'$k'");}}$_output='';for($_x=$start;$_x<=$to;$_x+=$step){$_output.=$content."\n\r";}return $_output;}
(2)然後就可以直接在smarty模板中使用for迴圈了,作者的使用案例如下:
php檔案部分代碼:
$vote='[[[';//我要在模板中將這三個符號轉變為三個五角星圖片$smarty->assign('vote',$vote);
smarty模板檔案部分代碼:
{if false!==$vote|@stripos:'['}{for start=1 to=$vote|@strlen step=1}{/for}{/if}
ok,以上問題解決。大同小異,如果你還需要為smarty擴充更多功能,方法同上,基本上都可以實現。
您可能感興趣的文章
- smarty 模板中迴圈表格補充不全的td
- smarty模板中使用php函數以及smarty模板中如何對一個變數使用多個函數
- thinkphp模板中判斷volist迴圈的最後一條記錄
- smarty模板中判斷數組為空白的方法
- smarty模板中給資訊添加最新標籤
- smarty模板保留變數總結
- php smarty中文截取外掛程式開發樣本
- smarty模板中如何產生隨機數
http://www.bkjia.com/PHPjc/764150.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/764150.htmlTechArticlesmarty是php開發中非常流行的一個模板,以前曾發過一篇文章php smarty中文截取外掛程式開發樣本是說明如何開發smarty外掛程式的,這篇文章將分享一下...