smarty插件
smarty插件
1.目录:放在Smarty类库下的plugins目录下面(默认存放的都是smarty自带的插件)
smarty3.0提供了自定义插件目录的方式:
$smarty->addPluginsDir(ROOT."plugins"); //自定义添加一个插件目录
2.Smarty插件命名规则
2.1 插件文件名命名规则
type.name.php
name 自定义---------------------插件名称
type 的类型有以下几种:----------插件类型
1.function --自定义函数
2.modifier --修改器
3.block
4.compiler
5.prefilter
6.postfilter
7.outputfilter
8.resource
9.insert
例如:modifier .date_format .php这个就是smarty自带的日期插件的文件名
2.2 插件文件里面的函数命名规则
smarty_type_name ()
例如:smarty_modifier _date_format
2.3如果指定的插件文件不存在或文件、函数命名不合规范,Smarty会输出对应的错误信息。
3. 添加自定义插件功能
个人觉得modifier(修改器)和function(Smarty标签)这二种类型的插件最有用,也是最常用的。所以下面我以这二个类型来举例子
3.1添加modifier插件
a )./plugins(或自定义目录)下面建个文件modifier.mystyle.php
<?php
function smarty_modifier_mystyle($var, $color, $size) {
return '<font color="'.$color.'" size="'.$size.'">'. $var .'</font>';
}
?>
参数:函数的第一个参数会自动传入模板中要修改的变量,
修改器用到的其他参数从第二个参数开始声明.
b).在模块文件文件中加入
{$var|mystyle: "red":7}
这样就可以改变变量值的颜色和字号大小了.
3.2添加function插件
a )./plugins下面建个文件function.eight_ball.php
function smarty_function_eight_ball($params, $smarty) {
//如果某个插件依赖其它插件的某些功能(事实上,一些插件被绑定在Smarty中),那么可以通过如下方法加载需要的插件
//require_once $smarty->_get_plugin_filepath('shared','escape_special_chars');
$answers = array(
'是的',
'不行',
'没门儿',
'看起来不好',
'在回答一次',
'根据情况决定'
);
$result = array_rand($answers);
return $answers[$result];
?>
参数:需要2个参数:
模板中传递给模板函数的所有属性都包含在关联数组中作为第一个参数;
第二个参数hi用来接收自动传入的Smarty对象,可以通过这个参数在函数中调用到Smarty对象中的成员.
返回值:函数的输出内容(返回值)在原位置用函数标签代替
b ). 在模块文件文件中
{* 在模中使用 eightball 函数标签:*}
问题: 我能有时间旅行吗?
答案:{eightball}.
4.补充说明
4.1按照惯例,Smarty对象通常作为最后一个参数传递给插件,但有两个例外:
1 调节器不须接受Smarty对象的传递。
2 为了向前兼容旧版Smarty,块插件将$repeat排在Smarty对象后面作为最后一个参数($smarty作为倒数第二个参数)。
smarty插件的更多相关文章
- Smarty插件简单开发
smarty的插件相当简单,你的网站经常会用到一些特定的Url或Controller或Action的路由地址的动态生成,通过smarty插件方式可以很轻松的实现. 在smarty/plugins目录下 ...
- 将kindeditor在线编辑器制作成smarty插件
在web开发中,在线编辑器是经常要用到的功能模块,虽说配置在线编辑器没有多大难度,但是每一次编写重复的代码,总是让人感觉不爽. 本篇,就来讲解一下,如何将kindeditor制作成smarty的一个自 ...
- jquery,smarty,dedecms的插件思路------dede未实践
1.jquery定义一个新函数,这个函数可以使用jquey的所有功能 2.smarty,dede其实也和jquery一样,不过是可以使用系统的一些方法而已 3.可能还有一些规范,如smarty插件的命 ...
- Smarty s02
保留变量 方便使用php 不用assign {$smarty} get {$smarty.get.page} session {$smarty.session.user.name} server c ...
- smarty第一天
1.安装 安装Smarty发行版在/libs/目录里的库文件(就是解压了). 2.工作原理 美工人员 1. 写模板, HTML CSS JavaScript 2. 使用Smarty表现逻辑 放变量, ...
- smarty的学习计划(2)
连接数据库时,处理数据用原生态的PHP函数???NO,我们用phplib里的DB类,它文件小.加载速度快而备受人们喜爱. copy一个目录表: web(站点根目录) |-----libs(Smarty ...
- 6.function自定义插件的方法和使用
Smarty插件本质上是一个function函数 有三种类型的插件: function modifier block functions 定义的方法有三种: 1.使用registerPlugin的方法 ...
- functions函数插件的定义和使用
创建Smarty插件:在插件目录(plugins)里新建文件 类型.插件名.php文件,然后插件方法名字书写规范: smarty_类型_插件名([...]){}在模板(tpl文件)中调用插件时格式{插 ...
- 使用redis做pv、uv、click统计
redis实时统计 设计思路: 1. 前端smarty插件(smarty_function_murl),将网站所有的连接生成一个urlid,后端根据获取的参数将需要的数据存入redis. 2.后端插件 ...
随机推荐
- linux内核中的IPIs是什么?
答: 处理器间中断(Interprocessor Interrupts)
- P1552 [APIO2012]派遣
链接 https://www.luogu.org/problemnew/show/P1552 思路 忍者数量肯定越多越好 那就从下到上的合并它的孩子 左偏树的话 顺便维护一个tot,大头堆,如果tot ...
- JS获取节点的兄弟,父级,子级元素
https://blog.csdn.net/duanshuyong/article/details/7562423 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作 ...
- 常用Iview样式布局
type 布局模式,可选值为flex流式布局或不选,在现代浏览器下有效 flex 布局下的垂直对齐方式,align可选值为top.middle.bottom flex 布局下的水平排列方式,justi ...
- Latex: 保持参考文献大小写
参考: BibTeX loses capitals when creating .bbl file Latex: 保持参考文献大小写 在排版时,BibTeX会根据参考文献的格式将除了title中的第一 ...
- Lintcode452-Remove Linked List Elements-Easy
Remove Linked List Elements Remove all elements from a linked list of integers that have value val. ...
- SAP FI CO模块常用事务代码
...
- 《机器学习实战》之k-近邻算法(改进约会网站的配对效果)
示例背景: 我的朋友海伦一直使用在线约会网站寻找合适自己的约会对象.尽管约会网站会推荐不同的人选,但她并不是喜欢每一个人.经过一番总结,她发现曾交往过三种类型的人: (1)不喜欢的人: (2)魅力一般 ...
- SQL 中常用的功能函数,自定义的功能行数
在SQL Server指定的数据库中,有Programmability目录,在这个目录下,有存储过程,有功能函数. set ANSI_NULLS ON set QUOTED_IDENTIFIER ON ...
- Python安装第三方库的安装技巧
电脑:Windows10 64位. Python IDE 软件:JetBrains PyCharm Community Edition 2018.1.3 x64 Python version : Py ...