zoukankan      html  css  js  c++  java
  • 五,Smarty模板技术/引擎——自定义函数机制

    自建函数是smarty提供的函数,不允许修改,只能被调用;

    自定义函数是自己编写函数,注册成为smarty的函数,之后可以被调用;

    示例:使用smarty自定义函数的机制,编写一个函数myfun1,通过调用该函数(可以输入必要的参数),完成循环输出5次“hello,顺平”,要求内容,颜色,字体大小均可置顶。

    (1)自定义函数

    //编写自定义函数
    function test1($args){
        $str = "";
        for($i = 1;$i<= $args['times'];$i++){
            $str .= "<font size='{$args['size']}' color='{$args['color']}'>{$args['con']}</font><br/>";
        }
        return $str;
    }
    
    //注册自定义函数
    $smarty->register_function("lhy1","test1");
    <{*tpl中引用自定义函数*}>
    <{lhy1 times="5" size="5" con="Hello,顺平" color="red"}>

    (2)自定义块

    //编写自定义函数
    function test2($args,$con){
        $str = "";
        for($i = 1;$i<= $args['times'];$i++){
            $str .= "<font size='{$args['size']}' color='{$args['color']}'>{$con}</font><br/>";
        }
        return $str;
    }
    
    //注册自定义函数
    $smarty->register_block("lhy2","test2");
    
    <{lhy2 times="5" size="5" color="red"}>
        Hello,顺平
    <{/lhy2}>

    (3)利用samrty插件形式增加自定义函数

    在smarty包中plugins文件夹下,新建一个文件function.lhy4.php。

    文件名的格式:function.自定义函数名.php

    function.lhy4.php代码页内容如下,

    函数的名字:function smarty_function_自定义函数名($params, &$smarty)。

    <?php
    
    
    function smarty_function_lhy4($params, &$smarty){
        $str = "";
        for($i = 1;$i<= $params['times'];$i++){
            $str .= "<font size='{$params['size']}' color='{$params['color']}'>{$params['con']}</font><br/>";
        }
        return $str;
    }
    
    <{lhy4 times="5" size="5" con="Hello,顺平" color="red"}>

    (4)利用samrty插件形式增加自定义块

    在smarty包中plugins文件夹下,新建一个文件function.lhy5.php。

    文件名的格式:block. 块名.php

    function.lhy4.php代码页内容如下,

    函数的名字:function smarty_block_块名($params,$content, &$smarty)。

    <?php
    function smarty_block_lhy5($params, $content, &$smarty){
        $str = "";
        for($i = 1;$i<= $params['times'];$i++){
            $str .= "<font size='{$params['size']}' color='{$params['color']}'>{$content}</font><br/>";
        }
        return $str;
    }
    
    <{lhy5 times="5" size="5" color="red"}>
    Hello,顺平
    <{/lhy5}>
  • 相关阅读:
    小程序开发过程中遇到的问题
    Windows 常用命令与快捷键
    前端开发中遇到的问题记录
    判断当前页面是否在微信中
    js学习导图
    一篇不错的 文章
    flex 布局
    微信客户端sdk使用前的 授权签名
    elementUI+vue-cli el-table=》excel
    rem适配
  • 原文地址:https://www.cnblogs.com/usa007lhy/p/4961689.html
Copyright © 2011-2022 走看看