Smarty 模板引擎插件开发接触

对Smarty使用有一些时间了,从写的第一个博客系统到写的小框架都加入了这款模板引擎虽然频繁的使用了他但是对于其插件的开发并非太过了解只是明白插件的使用和开发方式未曾真正的去做。

    今天因为在写项目时忽然发现自己所写的框架有些不足之处,而这点原因是比较致命的地方。其实问题很简单 因为框架的URL方式是PATHINFO模式这样的模式下在对某个模块或者模块下的方法访问时会产生如下路径Http://www.ipensoft.com/index.php/Home/Index 这样问题就来了 当你的模板文件中有连接的外部css、js 、图片等资源时 就会使原本正常的路径变成错误的连接路径。

    例如:

1
2
< link charset = "UTF-8" href = "Public/css/bootstrap.css" type = "text/css" rel = "stylesheet" />
//这段代码大家非常熟悉其意思但是在如上边所说的URL地址的情况下就会产生错误的连接

所以就有必要找一个解决的办法,既然是模板连接资源的问题那就从模板相关的内容开始找解决的办法,自己晓得ThinkPHP中有__PUBLIC__这枚标签用来在模板中载入公共资源。 那我也做一个 那样就要利用到了Smarty的插件功能。它的插件功能也很强大 可以自定义函数 和标签 。。。

我这里主要使用了自定义标签的功能 采用function.html_image.php命名风格的是标签插件方法名也是有规范的

1
2
3
4
5
6
7
<?php
    function smarty_function_html_image( $params , $template )    //命名风格 并且接受两个参数
   {
       $file = "" ;
       return <img src= $params [ 'file' ] >;
   }
?>

他其中接收两个参数均为数组值 $params 为 你在模板中传入的参数 如:{html_image file="logo.png"} 他将会吧 file=“logo.png”接收并已数组的方式存储。第二个参数也是数组 但是我并未明白他的具体含义是什么 用来做什么。

既然已经接收到了模板中的数据了那么 接下来就是对数据操作和返回数据了 你可以将数据接收后进行跟需求相关的操作 最后在返回时候 需要注意 你要返回你想要在html模板中所显示的完整内容 就像例子中写的那样 返回! 对就是那样  你就完成了一个模板标签的制作。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值