zoukankan      html  css  js  c++  java
  • Smarty学习笔记(二)

    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}
    输出结果 会全部替换为半角句号


  • 相关阅读:
    序列JSON数据和四种AJAX操作方式
    jquery.validate和jquery.form.js实现表单提交
    JQuery Validate使用总结1:
    HOWTO: Include Base64 Encoded Binary Image Data (data URI scheme) in Inline Cascading Style Sheets (CSS)(转)
    SharePoint 2007 使用4.0 .Net
    动态IP解决方案
    取MS CRM表单的URL
    从Iframe或新开的窗口访问MS CRM 2011(转)
    Toggle or Hidden MS CRM Tab
    Windows 2008下修改域用户密码
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154263.html
Copyright © 2011-2022 走看看