Smarty学习笔记(二)

来源:互联网 发布:java源码中装饰模式 编辑:程序博客网 时间:2024/06/10 04:36

1.引用

{include file="xxx.xxx" sitename="xxx"}

向引入的文件传入变量:

{include file="xxx.xxx" sitename="xxx"}

这时候可以在引入的文件中使用sitename这个变量,值为"xxx"


2.类与对象

用assign把类的对象以变量形式赋值到smarty模板中使用

php内

    class My_Object{        function meth1($params){            return $params[0].'已经'.$params[1];        }    }    $myobj = new My_Object();    $smarty->assign('myobj',$myobj);
tpl内
{$myobj->meth1(array('你','是别人的'))}

3.使用php函数

{<param1>|<php function name>:<param2>:<param3>:<param4>}
例如:

字符替换函数

str_replace('被替换的',"替换为",被替换的变量)

例如将变量title的值“title”替换为”titlh“,并且保持首字母大写,无字符时默认显示"notitle"

{'e'|str_replace:'h':$articletitle|default:'notitle'|capitalize}


4.向smarty中加入自定义函数

 function test($params){        $p1 = $params['p1'];        $p2 = $params['p2'];        return 'p1='.$p1.',p2='.$p2;    }        $smarty->registerPlugin('function','f_test','test');

第一个参数为加入的函数类型(function、modifier、block),第二个为在smarty中的函数名,第三个为要添加的函数名

调用:

{f_test p1="test1" p2="test2"}
实质:调用的时候将参数=值封装成一个数组传入函数,在函数内解包

5.制作、使用插件:

①在plugins目录下新建文件,例如新建一个function插件,则命名为function.xxx.php,函数的命名规范为smarty_function_xxx

则可以通过{xxx param1=... param2=...}来调用(忽视smarty_function部分)

②modifier类型(变量调节器)与之不同的在于参数不是数组,而是有几个写几个

③block类型(区块插件)

block插件名称为smarty_block_xxx,则使用方法为<xxx>...</xxx>

参数是打包成数组传入

注意有两个参数,第二个参数为block的内容

例如设计一个插件将一段话中的前多少个字符显示,并且替换全角逗号为半角 。

block.test2.php

<?php    function smarty_block_test2($params, $content){        $replace = $params['replace'];        $maxnum = $params['maxnum'];        if($replace == 'true'){            $content = str_replace(',',',',$content);            $content = str_replace(',',',',$content);        }        $content = substr($content,0,$maxnum);        return $content;    }?>

xxx.tpl

{test2 replace='true' maxnum = 100},,,,,,,,,{/test2}
输出结果 会全部替换为半角句号


0 0
原创粉丝点击