1,capture标签
capture的中文意思是抓取,它的作用是抓取模板输出的数据,当我们需要它的时候,调用它,以得到抓取数据的目的。例子:
代码如下 | 复制代码 |
1.{capture name=test} 2.<img src=”testimg.jpg”> 3.{/capture} 4.<div class=”image”> 5.{$smarty.capture.test} 6.</div> |
说明:
在{capture name=”test”}和{/capture}之间的内容被存储到变量$test中,该变量由name属性指定.在模板中通过 $smarty.capture.test 访问该变量.如果没有指定name 属性,函数默认将使用”default” 作为参数,这一点很jquery中的clone
2,config_load标签
config_load可以直接将文件中的内容读取出来,这样可以省掉assign这一步。
代码如下 | 复制代码 |
1.test.csv: 2.pageTitle = ”config_load_test” 3.bodyBgColor = ”#eeeeee” 4.img = ”girl.jpg” 5.width=”100″ 6.height=”100″ 7.index.tpl: 8.{config_load file=”test.csv”} 9.<html> 10.<title>{#pageTitle#}</title> 11.<body bgcolor=”{#bodyBgColor#}”> 12.<img src=”{#img#}” width=”{#width#}” height=”{#height#}”> 13.</body> 14.</html> |
上述过程中如果出现这样的问题Warning: Smarty error: unable to read resource, 请查看一下,你的test.csv是不是放在smarty的配置目录中,默认配置目录是configs
代码如下 | 复制代码 |
1./** 2.* The directory where config files are located. 3.* 4.* @var string 5.*/ 6.var $config_dir = ’configs’; 3, |
literal标签的使用
做web开发,难免会写一些JS,jquery代码。js和jquery里面都会{}这样的符号,smarty会不会把它理解成php的变量呢?如果你不加literal标签的话,smarty肯定会把它理解变量了,加了就不会,例如:
代码如下 | 复制代码 |
1.{literal} 2.function getAbsLeft(e){ 3.var l=e.offsetLeft; 4.while(e=e.offsetParent)l+=e.offsetLeft; 5.return l; 6.} 7.function getAbsTop(e){ 8.var t=e.offsetTop; 9.while(e=e.offsetParent)t+=e.offsetTop; 10.return t; 11.} 12.{/literal} |
4,php标签
当你习惯了assign后,你有没有想过,在模板文件里面直接写php代码呢,我想有的时候你肯定很想吧。例如:
代码如下 | 复制代码 |
1.{php} 2.global $result; 3.foreach($result as $key=>$value){ 4.echo ”key=$key,value=>$value<br>”; 5.} 6.{/php} 5, |
strip标签
strip标签去除标签内的空格和回车,这一点我觉得,做手机开发的朋友肯定用的到,因为全角空格有可能会导致整个页面错乱,甚至是一个空白页面。手机屏幕小,估计用smarty的可能性也比较小。
代码如下 | 复制代码 |
1.{strip} 2.<div> 3.<font color=”red”>strip</font> 4.</div> 5.{/strip} 6,fetch标签 |
fetch标签根php的file_get_contents挺想的,都可以把文件中的内容读出来,并且是个字符串的形势
代码如下 | 复制代码 |
1.{fetch file=”./aaaa.txt” assign=”result”} 2.{if is_array($result)} 3.<b>is array</b> 4.{else if} 5.<b>not array</b> 6.{/if} |
时间: 2024-12-21 11:53:15