Smarty中用户自定义插件
Posted Shuo_128
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Smarty中用户自定义插件相关的知识,希望对你有一定的参考价值。
用户自定义插件:
{ts:变量|函数[:参数]}:修饰函数插件(modify)
{ts:插件名 属性=值 属性=值...} 函数类型插件(function)
{ts:插件名 属性=值 属性=值...} block类型插件
{ts:/插件名} #插件闭合的结尾一定不可以漏#
Libs目录详解:
Plugins: 用户自定义插件目录
Sysplugins:系统插件目录
修饰函数插件:
libs/plugins/创建固定格式文件:
Modifier.插件名.php
编写规定规范的函数:
最后结果数据使用return返回。
function smarty_modifier_插件名($string,参数1,参数2...){}
$string:指的是被修饰的变量
参数1:参数1 作为函数调用的第一个参数,也可以只有一个参数
插件使用:
{ts:变量名|插件名:参数1,参数2....}
=>smarty_modifier_插件名(变量名,参数1,参数2....)
【modifier.strcon.php】 #文件必须放在/libs/plugins/下#
<?php function smarty_modifier_strcon($string,$string2){ $s = $string.$string2; return $s; } ?>
block类型的插件:
libs/plugins/创建文件
Block.插件名.php
block插件函数定义:
function smarty_block_插件名($params, $content, $template){
if (is_null($content)) return;
Return 返回内容
}
$params:以属性当键名,以属性值作为数组元素组成的一维关联数组。
$content: 被修饰的内容
$template:smarty对象
调用插件:
{ts:插件名 属性=值 属性=值...}
{ts:/插件名}
【block.hotlink.php】 #文件必须放在/libs/plugins/下#
<?php // 热点关键词 php=>http://www.php.com hotlink插件 function smarty_block_hotlink($params,$content,$template){ foreach($params as $key=>$vo){ $link = "<a href=\'{$vo}\'>".strtoupper($key)."</a>"; $content = str_replace($key,$link,$content); } return $content; } ?>
【block.php】
<?php require_once("./smarty.inc.php"); $tpl -> display("block.html"); ?>
【block.html】
{ts:hotlink asp="http://www.baidu.com" php="http://www.php.com" Shuo_128="http://www.cnblogs.com/shuo-128/"} 大家好,我是Shuo_128,点这里跳转到asp,点这里跳转到php {ts:/hotlink} <hr/> {ts:/hotlink}
#在block.php中获取前台block.html中的值#
function类型插件:
用于网站js效果,数据展示,内容展示等
{ts:插件名 属性=值 属性=值...} 函数类型插件(function)
libs/plugins/文件定义
Function.插件名.php
函数定义格式:
Function smarty_function_插件名($params,$template){
$params: 属性名当键名,属性值当数组元素值一维关联
$template:smarty对象
Return 数据:如果没有数据遍历就直接进行数据输出
Assign: 如果有数据遍历那就需要使用assign向模板传递数据。
}
调用: {ts:插件名 属性=值 属性=值...}
{ts:sqllist table="" max="" orderby="" sql=""}
【sqllist.php】
<?php require_once("./smarty.inc.php"); $tpl -> display("sqllist.html"); ?>
【sqllist.php】
{ts:sqllist table="ts_news" max="1"} <hr/> {ts:sqllist sql="select * from ts_news" max=2}
#在sqllist.php中获取前台sqllist.html中的值#
以上是关于Smarty中用户自定义插件的主要内容,如果未能解决你的问题,请参考以下文章