PHP Smarty 模板 自定义插件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP Smarty 模板 自定义插件相关的知识,希望对你有一定的参考价值。

插件

是按需载入的。当特定的修饰器,函数,资源等被调用的时候插件才会被载入。

插件目录变量

可以是一个路径的字符串或者是包含多个路径的数组。

安装插件的方法

是直接把插件文件放置在这些目录下,Smarty会自动按需使用。

  1. 设定插件目录(新建一个myplugins文件夹)

D:\wamp\www\test\smarty\libs\plugins\

D:\wamp\www\test\smarty\libs\myplugins\

//定义根目录
define(‘ROOT‘, str_replace("\\", "/",dirname(__FILE__))."/");
//注意添加一个插件,要把系统默认设置的路径加入 否则不能使用默认系统的插件
$smarty->setPluginsDir(array(
    ROOT."/libs/plugins/",//系统默认设置的路径
    ROOT."/libs/myplugins/",//自定义的
));

 2.定义插件函数

<?php
/*
 * 1.确定插件位置 $smarty->setPlugsDir();
 * 2.文件命名要有规则,才能通过文件名确定这个文件  modifier.函数名.php
 * 3.函数名要有规则,才能找到这个文件中的这个函数
 * 4.参数要有规则 第一个必须是要处理的变量 第二个以后才是要使用的参数
 */
        function smarty_modifier_mystyle($str,$size="3",$color="pink"){
                        return "<font color=‘{$color}‘ size=‘{$size}‘>{$str}</font>";
        }

3.模板调用插件(修饰器)

<{$sex|mystyle:6:red}>

4.浏览器输出

male x

附上php页面代码

<?php 
//创建smarty对象
require_once ‘./libs/Smarty.class.php‘;
//定义根目录
define(‘ROOT‘, str_replace("\\", "/",dirname(__FILE__))."/");
//实例化Smarty类
$smarty=new Smarty();
//设定定界符
$smarty->left_delimiter="<{";
$smarty->right_delimiter="}>";
//设置为false 定界符号左右可以有空格
$smarty->auto_literal = false;

//添加一个插件的目录
//$smarty->setPluginsDir(ROOT."/libs/myplugins/");

//注意添加一个插件,要把系统默认设置的路径加入 否则不能使用默认系统的插件
$smarty->setPluginsDir(array(
    ROOT."/libs/plugins/",//系统默认设置的路径
    ROOT."/libs/myplugins/",//自定义的
));
//获取插件的目录
var_dump($smarty->getPluginsDir());
//变量赋值
$smarty->assign(‘sex‘,‘male x‘);
//变量输出
$smarty->display(‘hello.tpl‘);
?>


本文出自 “津沙港湾” 博客,请务必保留此出处http://11410485.blog.51cto.com/11400485/1843672

以上是关于PHP Smarty 模板 自定义插件的主要内容,如果未能解决你的问题,请参考以下文章

PHP Smarty 模板 自定义函数function和块函数block

PHP 自定义 Smarty 模板引擎类 高洛峰 细说PHP

foreach和section的区别

smarty模板基础1

PHP - Smarty 模板 - 如何创建与上下文无关的模板

3.自定义函数