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 ,然后在这个文件里面输入如下代码:
<?php
function smarty_block_for($params,$content,&$smarty){
if(is_null($content)){
return;
}
$start=0;
$to=0;
$step=1;
foreach($params as $k=>$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循环了,作者的使用案例如下:
友邻phpB2B电子商务系统是一套用PHP开发的B2B电子商务系统应用程序,本系统基于PHP+MySQL开发, 采用优秀的MVC架构思想,同时本系统采用了流行的Smarty模板技术,静态模板与动态程序完全分离,系统自带十余个内容丰富的调用标签,同时可自由扩展各种插件或其他功能,秉承开源、开放的原则,是目前搭建B2B行业门户网站最好的程序。安装说明首先请确保目录attachment、data、con
4
php文件部分代码:
$vote='[[[';//我要在模板中将这三个符号转变为三个五角星图片
$smarty->assign('vote',$vote);smarty模板文件部分代码:
{if false!==$vote|@stripos:'['}
{for start=1 to=$vote|@strlen step=1}
<img src="http://www.phpernote.com/images/xing.gif" / alt="smarty模板中for循环的扩展插件" >
{/for}
{/if}ok,以上问题解决。大同小异,如果你还需要为smarty扩展更多功能,方法同上,基本上都可以实现。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号