一、注释

 *注释内容*

php—Smarty-2_配置文件

 

Html注释显示客户端源文件中

Smarty注释不会发给客户端

Smarty的注释主要给模板设计者来看的

二、模板中的变量

l  由php文件分配

1)  普通变量

2)  数组变量

3)  对象变量

程序代码:

php—Smarty-2_配置文件_02

模板代码:

php—Smarty-2_配置文件_03

1  由配置文件分配

配置文件:

php—Smarty-2_配置文件_04

模板代码:

php—Smarty-2_配置文件_05

2  在模板文件中创建

php—Smarty-2_配置文件_06

三、变量调节器

变量调节器主要是对变量进行格式化。

语法:

{$var|调节器:参数1:参数2:……}

l  {$var|capitalize}  :首字母大写

l  {$var|count_characters:true} :计算字符串长度   true:计算空格   默认:false

l  {$var|cat:var2} :连接字符串

l  {$var|count_paragraphs} :计算段落数

l  {$var|count_sentences} :计算句数

l  {$var|count_words} :计算单词数

l  {$var|date_format:”%H%M%S”} :格式化时间

php—Smarty-2_数组_07

l  {$var|default:”value”} :默认值

l  {$var|escape} :转码

l  {$var|indent:10:”*”} :缩进  

l  {$var|lower} :小写

l  {$var|nl2br} :将文件换行符转成网页换行符

l  {$var|regex_replace:”/[\t\n]/”:” “} :正则替换

l  {$var|replace:”aa”:”bb”}  :字符串替换

 

php—Smarty-2_配置文件_08

l  {$var|spacify:”^^”} :插空

l  {$var|string_format:”%d”}   :字符串格式化

l  {$var|strip}  :去除连续空格

l  {$var|strip_tags} :去除html标记

l  {$var|truncate:30:”…”} :截止字符串

l  {$var|upper} :转换为大写

l  {$var|wordwrap:30:”\n”}  :行宽约束

php—Smarty-2_数组_09

 

变量调节器的组合使用

{$var|capitalize|truncate:30:”…”|replace:”aa”:”bb”}

1)  将$var变量首字母大写

2)  再从$var中截取30个字符串

3)  再把截取之后的内容中的aa替换成bb

 

四 Smarty函数---插件

1)  内建函数                   sysplugins              不允许修改

2)  自定义函数                   plugins                  可以修改

1、capture             捕获一段内容,但不输出

语法:

{capture name=‘var’}

              内容

{/capture}

Name:将内容保存到指定的变量中

{$smarty.capture.var}

 

php—Smarty-2_php_10

在模板中,需要反复输出的大量内容,可以考虑使用capture捕获。

2、config_load             加载配置文件

{config_load file=“file”section=“section”}

file:配置文件名称

section:引用哪个配置节 可选参数

引用语法:

{#var#}

{$smarty.config.var}

php—Smarty-2_php_11

3、foreach,foreachelse          用于遍历数组

语法:

{foreach from=数组 key=键 name=名称 item=内容 } 
{foreachelse} 当要遍历的数组没有任何元素时,执行foreachelse后面的语句
{/forech}
From:要遍历的数组
Item:遍历到的键值
Key:遍历到的键名
Name:为foreach语句命名
Foreach内置变量

$smarty.foreach.name.index :索引 从0开始
$smarty.foreach.name.iteration :索引 从1开始
$smarty.foreach.name.first :当第一次执行循环时,该值为true
$smarty.foreach.name.last :当最后一次执行循环时,该值为true
$smarty.foreach.name.total :循环总数

php—Smarty-2_配置文件_12

4、include  引用另一个模板文件

{include file=“file” assign=“var” [var ...]}

File:要引入的模板文件

Assign:将结果保存,但本次不输出

[var …] :可选参数,为模板文件传参

php—Smarty-2_配置文件_13

php—Smarty-2_数组_14

5、include_php         包含一个php文件

{ include_php file=“file” assign=“var”      once=“true|false”}

File:要引入的php文件

Assign:保存输出结果,但本次不输出

Once:是否只包含一次   true:是     false:否

这个函数在smarty2.6中是可用的,但在3.0中将这个函数移除,如果还想使用这个函数,可以引用SmartyBC.class.php这个类文件

php—Smarty-2_php_15

6、insert     在模板中,执行一个php函数

语法:

{ insert name=“func”   [var ...] }

Name :被调用的php函数名

[var ...] :调用函数时指定参数  可选参数

Insert和include_php是同样的。都是2.6中的函数,在3.0中,将这个功能放到SmartyBC.class.php这个文件中了。

注意:inser引用的php函数的名称必须以insert_为前缀

php—Smarty-2_php_16

php—Smarty-2_数组_17

7、if elseif else

       {if}

       {elseif}

       {else}

       {/if}

php—Smarty-2_数组_18

8、ldelim 、rdelim   模板中的 { }  的转义符

{ldelim}

{rdelim} 

php—Smarty-2_数组_19

9、literal   literal标记中间的内容不会被smarty所解析

       {literal}

              ……

       {/literal}

php—Smarty-2_配置文件_20

 

10、php    可以在一对php标记中写php代码

      

       {php}

              ……

      {/php}

     

php—Smarty-2_数组_21

源码面前,了无秘密