smarty 变量调节器

Posted 陌上薰初

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了smarty 变量调节器相关的知识,希望对你有一定的参考价值。

变量调节器:<{$a|变量调节器}>

了解更多可以查询smarty手册

主要修改此页面的信息来了解变量调节器:main.php/main.html(0603)

1.利用给定的变量调节器

capitalize 首字母大写

php页面:$smarty->assign("ceshi","hello world");

html页面:<div><{$ceshi|capitalize}></div>

运行后:Hello World

truncate截取字符串(有参数),10代表截取的长度, . 是第三个参数,代表剩余的内容 

 <td><{$v[1]|truncate:10:"..."}></td>    也可以用:<td><{$v[1]|truncate:10}></td>(默认是...)

运行后:                                                    原图:

           

2. 自己写的变量调节器

在lib/plugins中新建文件,命名方式是固定的:modifier.变量调节器名称.php

 2.1 改变答案的颜色

新建文件:modifoer.fontcolor.php

1 <?php
2 //参数:第一个是默认的字符串$str,必须写
3 function smarty_modifier_fontcolor($str,$color="green")
4 {
5     return "<span style=\'color:{$color}\'>$str</span>";
6     }

在前端调用方法main.html:    <td><{$v[2]|fontcolor:red}></td>   

          

2.2 组合使用变量调节器:

在前端调用方法main.html:  <td><{$v[1]|truncate:10:"..."|fontcolor}></td>    

 

2.3 显示所属科目的名称

新建文件:modifoer.kmname.php

1 <?php
2 function smarty_modifier_kmname($str)
3 {
4     $conn=new mysqli("localhost","root","","mydb");    
5     $sql="select name from kemu where code = \'{$str}\'";
6     $result=$conn->Query($sql);
7     $attr=$result->fetch_row();
8     return $attr[0];
9     }

在前端调用方法main.html:    <td><{$v[3]|kmname}></td>

        

2.4 显示难度的名称

新建文件:modifoer.nandu.php

 1 <?php
 2 function smarty_modifier_nandu($str)
 3 {
 4     if($str==0)
 5     {
 6         return "简单";
 7         }
 8     else if($str==1)
 9     {
10         return "适中";
11         }
12     else
13     {
14         return "困难";
15         }
16     }

在前端调用方法main.html:   <td><{$v[4]|nandu}></td>

      

2.5 显示类型的名称

新建文件:modifoer.type.php

 1 <?php
 2 function smarty_modifier_type($str)
 3 {
 4     if($str==0)
 5     {
 6         return "判断";
 7         }
 8     else if($str==1)
 9     {
10         return "单选";
11         }
12     else
13     {
14         return "多选";
15         }
16     }

 

在前端调用方法main.html:    <td><{$v[5]|type}></td>

        

 

 

main.html 中全部修改内容:

<{foreach $shuju as $v}>
<tr>
<!--truncate截取字符串(有参数),10代表截取的长度,.是第三个参数,代表剩余的内容 -->
<td><{$v[1]|truncate:10:"..."|fontcolor}></td>
<td><{$v[2]|fontcolor:red}></td>
<td><{$v[3]|kmname}></td>
<td><{$v[4]|nandu}></td>
<td><{$v[5]|type}></td>
<td><a href="delete.php?code=<{$v[0]}>">删除</a>
<a href="update.php?code=<{$v[0]}>">修改</a>
</td>
</tr>
<{/foreach}>

 

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>主页</title>
 6 </head>
 7 
 8 <body>
 9 <h1>主页面</h1>
10 <table width="70%" border="1" cellpadding="0" cellspacing="0">
11 <tr>
12     <td>题目名称</td>
13     <td>答案</td>
14     <td>所属科目</td>
15     <td>难度</td>
16     <td>类型</td>
17     <td>操作</td>
18 </tr>
19 
20 <{foreach $shuju as $v}>
21 <tr>
22     <!--truncate截取字符串(有参数),10代表截取的长度,.是第三个参数,代表剩余的内容 -->
23     <td><{$v[1]|truncate:10:"..."|fontcolor}></td>    
24     <td><{$v[2]|fontcolor:red}></td>   
25     <td><{$v[3]|kmname}></td>
26     <td><{$v[4]|nandu}></td>
27     <td><{$v[5]|type}></td>
28     <td><a href="delete.php?code=<{$v[0]}>">删除</a>
29     <a href="update.php?code=<{$v[0]}>">修改</a>
30     </td>
31 </tr>
32 <{/foreach}>
33 </table><br />
34 
35 <a href="add.php">添加数据</a><br />
36 
37 </body>
38 </html>
View Code

 

以上是关于smarty 变量调节器的主要内容,如果未能解决你的问题,请参考以下文章

6月5日 smarty变量调节器 函数 配置文件

Smarty模本引擎

变量调节器

smarty模板自定义变量

smarty模板自定义变量

smarty模版的自定义变量