smarty模板的插件使用报错问题(已解决)
2016-02-16 13:02
549 查看
项目中用Smarty 但是Smarty 中的字符串截取不支持中文 就想到写个插件来实现
在网上找了一些资料 但也是不全 总结了一下 经过测试终于写出来了 测试了几天还是比较好用的 也分享一下吧
首先来介绍一下相关的知识:
1. 什么是smarty?
smarty是一个使用PHP写出来的模板PHP模板引擎, 是php.net推荐的一个模板系统.
2. 什么是smarty的插件?
smarty的插件是指smarty中的plugins, 是一些嵌入模板内的一些功能性控制语句, smarty中的Variable Modifiers(变量调节)实际就是一些内置的插件.
3. 插件是怎么工作的?
在smarty模板中使用了插件调用语句时动态的载入, 你可以将你写好的插件放入smarty解压目录中的lib目录下的plugins, 这样在模板中使用这些插件时它将会被自动载入.
4. 插件有几种类型?
function, modifier,block, compiler,prefilter, postfilter, outputfilter, resource, insert, 本文中我们只使用function型插件,其它类型的请读者自已练习使用.
在libs/plugins 目录中建立一个文件命名为:(插件文件必须在此文件夹建,否则报错找不到)
function.fyr.php的插件文件:
<?php
//自定义函数
function smarty_function_fyr($args,$smarty){
//$str="<font color='".$args['color']."' size='".$args['size']."'>".$args['num1'].'+'.$args['num2']."的和=".$sum."</font>"."<br/>";
return $args['name'];
}
?>
这样smarty插件就做好了,插件其实就是函数 ,在tpl模板文件直接使用无需注册
tpl模板文件:
<h1>用户列表</h1>
<{fyr name='bbb'}>
在网上找了一些资料 但也是不全 总结了一下 经过测试终于写出来了 测试了几天还是比较好用的 也分享一下吧
首先来介绍一下相关的知识:
1. 什么是smarty?
smarty是一个使用PHP写出来的模板PHP模板引擎, 是php.net推荐的一个模板系统.
2. 什么是smarty的插件?
smarty的插件是指smarty中的plugins, 是一些嵌入模板内的一些功能性控制语句, smarty中的Variable Modifiers(变量调节)实际就是一些内置的插件.
3. 插件是怎么工作的?
在smarty模板中使用了插件调用语句时动态的载入, 你可以将你写好的插件放入smarty解压目录中的lib目录下的plugins, 这样在模板中使用这些插件时它将会被自动载入.
4. 插件有几种类型?
function, modifier,block, compiler,prefilter, postfilter, outputfilter, resource, insert, 本文中我们只使用function型插件,其它类型的请读者自已练习使用.
5. 如何命名插件?
文件名形式: type.name.php, type指的是类型,上边的几种是它的选择范围; name: 自定义的插件名称,本文中使用showNews来命名.
函数名称: smarty_type_name(), smarty:固定位置的固定名称; type与文件名的type一致, name与文件名中的name一致.
快速入门:在libs/plugins 目录中建立一个文件命名为:(插件文件必须在此文件夹建,否则报错找不到)
function.fyr.php的插件文件:
<?php
//自定义函数
function smarty_function_fyr($args,$smarty){
//$str="<font color='".$args['color']."' size='".$args['size']."'>".$args['num1'].'+'.$args['num2']."的和=".$sum."</font>"."<br/>";
return $args['name'];
}
?>
这样smarty插件就做好了,插件其实就是函数 ,在tpl模板文件直接使用无需注册
tpl模板文件:
<h1>用户列表</h1>
<{fyr name='bbb'}>
相关文章推荐
- 亚克力 工艺相关
- BPMN 2.0规范详解
- 几种通讯协议的比较RMI > Httpinvoker >= Hessian >> Burlap >> web service
- 使用anaconda本地安装python包的方法
- 使用anaconda本地安装python包的方法
- 2015年度总结--javaWeb
- ANDROID_MARS学习笔记_S01原始版_015_Socket
- Linux下无法加载动态库
- sql:连接查询跟多表查询的区别
- Android数据库操作
- WebCollector教程——在Eclipse项目中配置使用WebCollector爬虫
- Rails Commands
- CPU指令结构
- WebCollector网页正文提取
- 关于名字
- 一个大水的微信入坑经验
- WebCollector设置代理
- JAVA爬虫WebCollector 2.x入门教程——基本概念
- KK's Steel bestcoder round 71 hdu 5620(裴波那契)
- WebCollector教程——获取当前深度