在smarty中自定义函数

来源:互联网 发布:巡线机器人编程 编辑:程序博客网 时间:2024/05/18 01:44

       首先smarty中的自定义函数可以是用户可以手动修改的,它分为:

一种可以配合注册函数(register_function())使用

一种是直接写成插件放入plugins下

调用这些函数时都在模板里调用 写成该种格式

<{函数名  参数1=“ ”  参数2=“ ”  。。。}>


1、 smarty函数:

a)        实现对smarty功能的扩展

b)       内建函数:smarty自带  不能修改

  内建函数只能在php文件中调用;

 

c)        自定义函数:可以修改 

1、自定义函数可以在php文件中使用(配合注册函数),

2、也可以在模板文件中使用(需要将函数定义为插件放到plugins文件夹中)

 

在模板文件中调用

<{title  num="10"  content="aaa"  size="10"   color="green"}>

 

保存在plugins目录下

语法格式:类似于html标记的语法

<{…..}>

       例如:

              Smarty自定义函数:assign();

              函数名称:assign

              参数:    var    声明变量名称

                            Value  给变量赋值

              如:<{assign  var=”title” value=”这是title”}>        

 $tpl->assign(“title”,”this  is title”);

             

              属性无顺序要求

              <{config_load  file=”*.conf” section=”one”}>

 

 

 

在php文件中创建自定义函数:

 

例如:<{title  num=”10”  content=”aaa”  size=”10”   color=”green”}>

 

注册函数:

       第一步:声明函数:

              Functionfun1

 

模板文件中

<{title num="10" content="aaa" size="10"  color="green"}>

       第二步:注册函数

              $tpl->register_function();smarty中的函数

注册函数register_function("模板中自定义函数名","php中自定义函数名")

              $tpl->register_function("title","fun1");

       functionfun1($args){

              $a="";

              for($i=0;$i<=$args["num"]; $i++){

              $a.="<font size=".$args["size"]."color=".$args["color"].">".$args['content']."</font><br>";

              }

              return$a;

       }

 

注册块:

       <hr/>

       <br/>

       <a></a>

      

a.html

<{h  num=10 content=”aaaa”}>

<{/h}>

 

 

<{*自定义块:hello*}>

<{hellonum="10" size="3"}>aaaaaaaaaaaaa<{/hello}>

 

       //注册块

       $tpl->register_block("hello","do_translation");

       //自定义函数

       functiondo_translation($args,$content,&$a,&$b) {

             $a="";

              for($i=0;$i<=$args["num"]; $i++){

                     $a.=$content;

              }

              return $a;

       }

 

 

 

将函数写成插件文件存放到plugins 目录下:

 

新建函数文件  world

新建函数文件 world

  例如:

function.assign_debug_info.php

function  smarty_function_***(){}

  步骤

第一步:plugins下新建文件function.world.php

第二步:打开文件

  

function smarty_function_world($args, &$smarty)

{

              $a="";

              for($i=0;$i<=$args["num"]; $i++){

                     $a.="<fontsize=".$args["size"]."color=".$args["color"].">".$args['content']."</font><br>";

              }

              return $a;

   

}

 

在模板里调用函数

<{title num="10" content="aaa" size="10"  color="green"}>

 

          新建块文件hello

block.hello.php

function  smarty_block_hello(){}

第一步:plugins下新建块文件block.hello.php

第二步:打开文件

 Function smarty_block_hello($args,$content,&$smarty){

$a="";

              for($i=0;$i<=$args["num"]; $i++){

                     $a.=$content;

              }

              return $a;

 

 }

 

在模板里调用块

<{hello num="10"size="3"}>aaaaaaaaaaaaa<{/hello}>



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 外链多了影响网站排名怎么办 自粘墙纸有气泡怎么办 贴壁纸阴角不力怎么办 自贴墙纸有气泡怎么办 壁纸贴的有起泡怎么办 pos机连接主机失败怎么办 无线pos机连接主机失败怎么办 水墨晕染模板用不了怎么办 申请入驻饿了么失败怎么办 天猫流量大淘宝怎么办 拼多多商家不退款怎么办 苹果手机开流量显示e怎么办 苹果手机有服务流量打不开怎么办 苹果七plus流量打不开怎么办 苹果手机突然打不开流量怎么办 天猫商家迟迟不发货怎么办 苹果7开不开机了怎么办 苹果机黑屏了开不起来怎么办 美团收银机连不上网怎么办 6s换电池后黑屏怎么办 苹果上的软件打不开也删不掉怎么办 苹果手机打开软件打不开怎么办 苹果电脑下载的软件打不开怎么办 苹果手机下载的软件都打不开怎么办 苹7果屏幕黑屏怎么办 苹果6s手机打不开怎么办 苹果ipad密码输入打不开怎么办 苹果平板黑屏了打不开怎么办 苹果6sp电影商城打不开怎么办 苹果6应用商城打不开怎么办 游戏下载好了安装不上怎么办 苹果5s应用商店不见了怎么办 id被停用手机白板打不开怎么办 苹果6s下载不了软件怎么办 苹果下载的软件打不开怎么办 苹果6s下不了app怎么办 苹果手机因为闪退打不开了怎么办 天猫方糖坏了怎么办 天猫魔盒的遥控器坏了怎么办 天猫盒子没声音怎么办 天猫魔盒播放声音很低怎么办