站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
SpeedPHP/注册函数
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
{{SpeedPHP top}} [[Smarty]]模板通常情况下,是无法使用许多[[PHP]]或者自定义函数的,如果开发者需要在Smarty模板中使用一些自定义的函数,可以对函数进行“注册到模板”的操作,才可以在模板中使用这些函数。 注册函数,使用的方法是通过SpeedPHP的核心函数之一——spAddViewFunction ==spAddViewFunction的介绍== 1.参数,函数定义spAddViewFunction($alias, $callback_function),第一个参数$alias是该函数在模板中的名称,也就是模板内的函数名。第二个参数 $callback_function是回调函数的定义,支持函数名或array(类, 成员函数)的两种方式,指代当模板中执行名为$alias的函数的时候,将会执行的操作。 2.位置,spAddViewFunction的加入可以放置在模板使用“注册函数”之前。通常spAddViewFunction和指定的函数/类,都放到入口文件全局位置或是在入口文件全局位置载入的函数库文件中。 ==观察spAddViewFunction如何注册spUrl== spUrl是框架默认注册到模板的函数之一,我们通过观察spUrl的注册过程来了解spAddViewFunction的使用。 1.spView.php文件约40行:spAddViewFunction('spUrl', array(& $this, '__smarty_spUrl')); 这里是通过将$this(view的对象)中的__smarty_spUrl函数注册到smarty,别名是spUrl。请注意,是注册__smarty_spUrl函数,而并非spUrl函数本身。 2.spView类的__smarty_spUrl成员函数和spAddViewFunction('spUrl', array(& $this, '__smarty_spUrl'));都是在spView的构造函数中定义,和在入口文件全局位置定义是相同效果,当然我们建议开发者在入口文件全局位置来定义,不修改框架文件。 3.spView.php文件约90行,__smarty_spUrl函数的内容。可以看出这个函数只有一个参数$params,这是注册到模板的函数的标准形式。__smarty_spUrl函数内部是将spUrl需要的四个参数,从$params中获取然后再给spUrl函数,最后返回spUrl函数返回的[[数据]]。 ==如何注册将日期显示函数注册到模板中使用== 首先,我们有一个显示日期的函数tpl_date,参数的格式按照Smarty注册函数的标准进行设置。 <pre>function tpl_date($params){ // Smarty注册函数的参数只能是一个数组,数组分别指代在模板中的参数,请注意$params的几个值,下面还会说明 $format = $params["format"]; $timestamp = $params["timestamp"]; return date($format, $timestamp); // 简单起见,直接通过PHP的date函数来处理,当然开发者可以进行更复杂的操作 } </pre> 然后是spAddViewFunction将tpl_date函数注册到模板中,模板中使用的名称是view_date。 spAddViewFunction('view_date','tpl_date'); 在模板中,我们可以使用: <{view_date format="Y-m-d" timestamp="1231212323"}> 当模板中调用了view_date的时候,Smarty就会调用tpl_date函数,调用的参数format和timestamp就对应了tpl_date的$params数组的值。获取到返回值后就在模板中显示出来。 这样,就可以实现将函数注册到模板中使用了。还需要注意一下,通常以下[[代码]]都是写在一起的,并且是放在入口文件全局位置中。 <pre>function tpl_date($params){ $format = $params["format"]; $timestamp = $params["timestamp"]; return date($format, $timestamp); } spAddViewFunction('view_date','tpl_date'); </pre> ==参考来源== http://speedphp.com/manual.html {{SpeedPHP}} [[category:SpeedPHP|Z]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:SpeedPHP
(
编辑
)
模板:SpeedPHP top
(
编辑
)