ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

smarty前端常用标签

2020-10-15 11:50:26  阅读:236  来源: 互联网

标签:name 标签 前端 smarty html 参数 block 变量


{*

{extends file='blockparent.tpl'}

*}

{*必须放在模板的第一行,如果要用子模板来扩展父模板,那么它只能有{block}的区域任何其他模板的内容将被忽略*}

{config_load file='config.conf'}{*载入配置文件*}

<html>

<head>

<meta charset='utf-8' />

<style type="text/css">

.nav{

margin-left:40px;

}

</style>

<!--访问普通变量-->

<title>{$title}</title>

</head>

<body>

<div>

<!--smarty注释-->

{*访问索引数组*}<span>访问索引数组:</span>

{$arr1[0]}

</div>

<div>

{*访问关联数组*}<span>访问关联数组:</span>

{$arr2.name}

</div>

<div>

<span>访问二维数组:</span>

{$arr3.world.china}

</div>

<div>

<span>访问配置文件变量:</span>

{#webname#}

</div>

<div>

<span>保留变量:</span>

<div class="nav">

<!--<span>POST</span>{* $smarty.post.page *}相当于$_POST['page'],GET类似-->

{*

$smarty.server.SERVER_NAME;相当于$_SERVER['SERVER_NAME']

*}

<span>SERVER:</span>

{$smarty.server.SERVER_NAME}

{*

类似的操作有env,session,requirest等

*}

</div>

<div>

<span>变量修饰器</span>

<div class="nav">


<span>capitalize:</span><br>{*格式化单词*}

<span class='nav'>{$str|capitalize}{*默认*}</span><br>

<span class='nav'>

{$str|capitalize:true}</span><br>{*带数字的开头是否大写,第二个参数,首字母后面的是不是小写*}

<span class='nav'>

{$str|capitalize:true:true}{*多个参数用冒号隔开*}</span>

<br>


<span>cat:</span><br>{*字符串连接函数*}

<span class='nav'>

{$str1|cat:'huge!'}

</span><br>


<span>count_characters:</span><br>{*计算字符数*}

<span class='nav'>

{$str|count_characters}

</span><br>

<span class='nav'>

{$str|count_characters:true}{*包含空格*}

</span><br>

{*

类似函数有,count_paragraphs:计算段落数,以换行符为标识

count_sentences:计算变量有多少个句子。每个句子必须以点号、问号或者感叹号结尾

count_words:计算变量内容有多少个单词

*}

<span>count_paragraphs:</span>

<div class='nav'>

{$str2}<br>

{$str2|count_paragraphs}

</div>


<span>date_format:</span><br>{*格式化日期的显示*}

<span class='nav'>

{$smarty.now|date_format:'%Y-%m-%d %l:%M:%S %p'}{*12小时制*}

{*%T等价于%H:%M:%S,24小时制*}

{*%p:只显示AM或PM;%r:等价于%l:%M:%S %p*}

</span><br>

{*其他变量修饰器:

default:设置默认值,当变量未定义或为空时,启用,需要传入默认值

escap:可用于将变量编码成html,url,单引号,16进制,16进制实体,javascript和电子邮件,默认是html

unescap:escap的解码函数

indent:代码缩进,默认是4个空格,可以自行设置数目和类型,但页面显示无效果,只支持代码缩进

lower:将字符串转换为小写

upper:将变量转换为大写字母

nl2br:将变量值中'\n'转换为<br>

regex_replace:用正则表达式搜索和替换变量值,参数分别是正则表和要替换的字符达式

replace:对变量进行简单的搜索和替换,同上,只是第一个参数直接是字符串

spacify:会在变量的字符串中插入空格,可以设置插入字符的类型

string_format:格式化字符串,如浮点数,指定哪种格式,springf()

strip:转换连续空格,回车和tab到单个空格或是指定的字符串

strip_tag:去除标记等包含在<和>中间的字符,参数bool值,指定是否将标签转换为空格

from_charset:将变量值转换为当前的字符集

to_charset:可将变量值由当前的内置字符集转换到指定的字符集

truncate:截取字符串到指定的长度,默认是80,截取后字符的长度是截取规定的长度加上第二个参数的字符长度,参数1,长度,默认80,参数2,替代显示字符,默认...,参数3,是否按单词截取,默认true,参数4,当字符截取度刚好等于字符本身的长度时,是否截取,默认true

wordwrap:限制一行字符的长度(自动换行)默认是80,参数1,行长度,参数2,换行符,默认'\n',参数3,设置按单词换行(false,默认),还是按字符换行(true)

*}

</div>

<div>

{*多个修饰器用|隔开,按从左到右,依次作用于变量*}

<span>复合变量修饰器</span><br>

<div class='nav'>

<span>upper,truncate:</span><br>

{$str1|truncate:10|upper}

</div>

</div>

<div>

<span>内置函数:</span>

<div class="nav">

<span>appand</span>{*在运行时为数组变量增加或创建值*}<br>

<span class='nav'>

{append var='arr' value='元素1' index='first'}

The first name is {$arr.first}

</span><br>

<span>assign</span><br>{*在模板运行时,给变量赋值*}

<span class='nav'>

{assign var='name' value='huge'}

The Name is {$name}

</span><br>

<span>block:</span><br>

{*

可以再模板上定义一块区域,以进行模板继承,参数1,模板区域名称;参数2,append:区域代码将附加到父母版{block}内容之后,参数3,prepend:之前,hide在没有该名称区域时,忽略区域内容,nochache:关闭缓冲,可以通过$smarty.block.parent和$smarty.block.child来获取父元素和子元素

*}

<div class='nav'>

{literal}会重写当前的文档流

{extends file='blockparent.tpl'}

{block name='pblock'}childblock{/block}{*直接覆盖父元素*}

{block name='pblock' append}appendchildblock{/block}{*置于父元素后面,prepend用法类似*}

{block name='pblock' }{$smarty.block.parent}{/block}

{*获取父元素中的全部内容,包括不在block中的内容,$smarty.block.child*}

{/literal}

{*literal:将标签内的内容原样输出*}

</div>

<span>call:</span><br>

{*

可以调用一个通过{function}标签定义的模板函数,参数1,name,函数名;参数2,

*}

{function name='myfun'}

this is a function标签

{/function}

<span class='nav'>

{call name='myfun'}

</span>

<br>

<span>capture:</span><br>

<span class='nav'>

{capture name='mycap'}This is a capture{/capture}

{$smarty.capture.mycap}

</span><br>

<span>for:</span><br>

<span class='nav'>

{for $i=20 to 10 max=3}{*简单的for循环,max,可选,设置最大循环次数*}

item{$i}&nbsp;

{forelse}没有循环时,显示的内容。

{/for}

</span><br>

<span>if:</span><br>

<span class='nav'>

{if $myname eq 'huge'}

welcome huge!

{elseif $myname=='萍儿'}

welcome 学姐

{else}

对不起,不为外星人提供服务!

{/if}

</span><br>

<span>include:</span><br>

<div class="nav">

{include file='include.tpl' title='名单'}

</div>

{*

{ldelim}:左定界符

{rdelim}:右定界符

这样直接在浏览器输出这两个定界符,不进行解析

*}

<span>nocache:</span><br>{*关闭局部缓冲*}

{nocache}

<span class='nav'>

{$smarty.now|date_format:'%T'}

</span>

{/nocache}<br>

<span>section:</span><br>

<span class='nav'>

{section name='sc' loop=$arr1 start=0 step=1 max=3 show=true}

{$arr1[sc]}

{sectionelse}

控数组

{/section}

</span><br>

<span>strip:</span><br>{*过滤多余空格和回车,使页面内容在一行显示*}

<span class='nav'>

{strip}

<table border='0'>

<tr>

 <td>

  <a href="#">

   <font color="red">This is a test</font>

  </a>

 </td>

</tr>

</table>

{/strip}

</span>

<span>while:</span><br>

<span class='nav'>

{while $len>1}

item{$len--}&nbsp;

{/while}

</span>

</div>

</div>

</div>

<div>

<span>自定义函数</span><br>

<div class="nav">

<span>counter:</span>{*计数器*}

<div class="nav">

{counter name='cal' start=0 skip=2 assign='abc'}

{counter}&nbsp;{counter}&nbsp;{$abc}

</div>

<span>cycle:</span>

{*

交替循环一系列值

name:交替循环的名称

values:交替遍历的值,可以使逗号隔开的字符串或数组

print:是否显示,默认true

advance:是否递进到下一个值

delimiter:values属性使用的限定符

assign:赋值的变量名

reset:交替循环将重置回到最前面的值,而不是递进

*}

{for $i=0 to 5}

<div style="background-color:{cycle values='red,green,blue,yellow'}">第{$i}行</div>

{/for}

<span>eval:</span>{*var 需要执行的变量或字符串,assign分配给某个变量*}

{eval var=$str1}<br>

<span>fetch:</span>{*抓取本地换外网上的网页*}

<div class="nav">

{*

{fetch file='http://www.baidu.com/'}

*}

</div>

<span>html_checkboxes:</span>

<div class="nav">

{html_checkboxes name='cbx' options=$arr4 selected=1001 separator='<br>'}

</div>

{*类似的标签还有

html_p_w_picpath:file:路径,height,width:显示高度和宽度,alt,href:链接地址,如果设置会在外围加上a标签,path_prefix,使用该标签在不开启缓冲的情况下,会降低性能

html_options:values,数组;output:下拉显示的数组,selected:选中项;name:select组的名称;options:键值对数组,用于下拉框

html_radios:同html_checkboxes

html_date,html_time:显示日期、时间,参数比较多

html_table:用数组的形式创建一个表格

mailto:创建一个mailto链接

math:在模板中进行一些数学运算

text_format:格式化文本的块函数

*}

<span>html_date:</span>

<div class="nav">

{html_select_date prefix='日期'  start_year='-5' end_year='+1' month_format='%m' field_order='YMD'}

</div>

<span>html_time:</span>

<div class="nav">

{html_select_time}

</div>

<span>html_table:</span>

<div class="nav">

{html_table loop=$arr5 cols='列1,列2,列3' table_attr='border="0"' tr_attr=$tr inner=rows hdir=left caption='表头'}

</div>

</div>

</div>

<div>

<span>注册类</span><br>

<div class="nav">

{myclass::$property}

</div>

</div>

<div>

<span>注册函数</span><br>

<div class="nav">

{my_fun param=huge}

</div>

</div>

<div>

<span>注册块函数</span><br>

<div class="nav">

{mybk background-color=yellow}

这是一个块函数

{/mybk}

</div>

</div>

<div>

<span>自定义函数</span><br>

<div class="nav">

{myfuninfo name=huge}

</div>

</div>

</div>

</html>

{*

{debug}:显示数据页面中各个已赋值变量的名称和值

*}

目录结构:

wKioL1PjdNXgI1hrAAGVevBY-kQ358.jpg


标签:name,标签,前端,smarty,html,参数,block,变量
来源: https://blog.51cto.com/14895198/2541870

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有