您好,登錄后才能下訂單哦!
{*
{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}
{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--}
{/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} {counter} {$abc}
</div>
<span>cycle:</span>
{*
交替循環一系列值
name:交替循環的名稱
values:交替遍歷的值,可以使逗號隔開的字符串或數組
print:是否顯示,默認true
advance:是否遞進到下一個值
delimiter:values屬性使用的限定符
assign:賦值的變量名
reset:交替循環將重置回到最前面的值,而不是遞進
*}
{for $i=0 to 5}
<div >第{$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}:顯示數據頁面中各個已賦值變量的名稱和值
*}
目錄結構:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。