{diy}
作用:對頁面自定義數(shù)據(jù)進(jìn)行創(chuàng)建和管理
參數(shù):
id 相對于當(dāng)前模板的唯一識別號僅限英文和數(shù)字,如果該DIY是全局的 則必須以 "global_"開頭
name 對該diy 快進(jìn)行命名,以簡明易懂為原則
type diy 類型,目前可選類型有一下6類,其中 news、show、job、team、about 被并稱為內(nèi)容模塊,可在后期在前臺相互轉(zhuǎn)換類型
static 靜態(tài)模塊
news 文章模塊
show 作品模塊
job 人才招聘
team 團(tuán)隊成員
about 關(guān)于我們
minnum[可選] 最小數(shù)據(jù)數(shù) 默認(rèn)為1
maxnum[可選] 最大數(shù)據(jù)數(shù) 默認(rèn)為1
picwidth[可選] 指定圖片裁剪寬度
picheight[可選] 指定圖片裁剪高度
datestyle[可選] 指定日期/時間顯示樣式
案例一[type="static"]:
{diy id="thisid" name="這是名稱" type="static" minnum="2" maxnum="10" picwidth="500" picheight="100" datestyle="Y-m-d h:i"} <ul> [loop] [order1 picwidth="600" picheight="200"] <li><img src="[$pic]" alt="[$title]" width="[$picwidth]" height="[$picheight]">[$title]<span>[$dateline]</span></li> [/order1] [order/3 datestyle="Y年m月 h點(diǎn)i分"] <li class="mr0"><img src="[$pic]" alt="[$title]" width="[$picwidth]" height="[$picheight]">[$title]<span>[$dateline]</li> [/order/3] <li><img src="[$pic]" alt="[$title]" width="[$picwidth]" height="[$picheight]"></li> [/loop] {/diy}
說明:
1、以上例子中是一個靜態(tài)DIY模塊,允許用戶最多上傳10張圖片,如果沒有上傳圖片的話界面上會有兩個內(nèi)容占位。
2、第一張圖片以寬度 600 高度 200 來顯示。
3、順序是 3 的倍數(shù)的圖片的 li 容器應(yīng)用 "mr0" 類 并以 "Y年m月 h點(diǎn)i分" 的樣式里顯示發(fā)布時間
4、其余的圖片按照 diy 定義的參數(shù)來顯示
案例二[type="news"]:
{diy id="thisid" name="這是名稱" type="news" minnum="2" maxnum="10" picwidth="500" picheight="100" datestyle="Y-m-d h:i"} <h3><a href="[$moreurl]">[$moretitle] / [$moresubtitle]</a></h3> <ul> [loop] <li> <img src="[$pic]" alt="[$title]" width="[$picwidth]" height="[$picheight]"> <span>[$title]</span> <p> <a href="[$caturl]" target="_bank">欄目:[$cattitle]<em>[$catsubtitle]</em></a> <span>日期:[$dateline]</span> </p> </li> [/loop] {/diy}
說明:
1、以上例子中是一個新聞模塊[news],允許用戶最多調(diào)用10篇文章,如果沒有足夠的文章數(shù)量的話會有兩個內(nèi)容占位。
2、圖片以寬度 500 高度 100 來顯示。
3、[$moreurl] [$moretitle] [$moresubtitle] 分別代表 當(dāng)前DIY 塊的 總欄目鏈接和標(biāo)題、副標(biāo)題
4、[$caturl] [$cattitle] [$catsubtitle] 分別代表 當(dāng)前循環(huán)得到的單位數(shù)據(jù)的所屬欄目鏈接和標(biāo)題、副標(biāo)題
注意:
[loop] 指的是將 diy 返回的數(shù)據(jù)進(jìn)行數(shù)組遍歷
[orderX] 指的是指定下標(biāo)的數(shù)據(jù)的顯示樣式
[order/X] 指的是指定數(shù)字倍數(shù)為下標(biāo)的數(shù)據(jù)的顯示樣式
如果 [orderX] 定位的數(shù)據(jù)下標(biāo)和 [order/X] 定位的數(shù)據(jù)下標(biāo)相同,則 [orderX] 具有優(yōu)先性
例子中使用到的 [$pic] [$title] [$dateline] 均指的是當(dāng)前 DIY 模塊可用的字段 其中 [$dateline] 是按照 [order] 中或者是{diy} 中聲明的datestyle 參數(shù)值來顯示時間樣式([order] 中聲明的屬性具有優(yōu)先性)
[$picheight] 和 [$picwidth] 是用來裁剪圖片尺寸的,如果數(shù)據(jù)中沒有圖片可省略,如果{diy}中和[order]中均有聲明則按照就近原則才有層級最近的聲明
實際上 可以在[order]中聲明的參數(shù) picheight picwidth datestyle 一樣可以在 [loop] 中聲明,這在一個 DIY 里面存在多個 [loop] 的時候有用到。只不過這種情況是極少的
{F}
作用:返回文件路徑,本方法可以同時在 HTML 模板和 CSS 文件、JS文件中使用,注意在CSS和JS 中使用 的使用參數(shù)值必須使用雙引號,且每行代碼只能使用一次{F},需要注意的是,模板中任何出現(xiàn)文件路徑應(yīng)用的均需使用本方法,否則文件將找不到。
參數(shù):
file 基于模板的文件相對路徑
語法:
{F file="images/banner.png"}
場景一:使用在HTML模板中
<a href="#"> <img src="{F file="images/banner.png"}" width="200" height="100" alt="橫幅"/> </a>
場景二:使用在 CSS 文件中
div{ background:url({F file="images/tel_img.png"}) no-repeat center left;}
{yun_dump}
作用:在模板中打印變量
參數(shù):
val 需要打印的變量
語法:
{yun_dump val=$val}
{nocache}
作用:禁止緩存(成對)
語法:
{nocache}<htmlcode>{/nocache} //被{nocache}標(biāo)簽包圍的地方不進(jìn)行緩存 需要使用{nocache}包圍的地方有:
需要用戶登陸后可操作的地方,如發(fā)布文章按鈕 和 編輯刪除文章按鈕等
{foreach}
作用:遍歷數(shù)組(成對)
例子一:
<ul> {foreach $list as $k => $v} <li>編號:{$k}<a href="{$_Y['basescript']}-article-{$v['aid']},html">{$v['title']}</a></li> {/foreach} </ul>
上例以數(shù)組的鍵名作為子元素的編號
例子二:
<ul> {foreach $list as $v} <li>編號:{$v@index}<a href="{$_Y['basescript']}-article-{$v['aid']},html">{$v['title']}</a></li> {/foreach} </ul>
上例以數(shù)組子元素的下標(biāo)(從0開始)作為編號
例子三:
<ul> {foreach $list as $v} <li{if $v@iteration is div by 4} class="mr0"{/if}><a href="{$_Y['basescript']}-article-{$v['aid']},html">{$v['title']}</a></li> {/foreach} </ul>
$v@iteration 指的是循環(huán)的次數(shù) 從 1 開始,上例意思是在4的倍數(shù)的 li 上 應(yīng)用 mr0 類
{for}
作用: 循環(huán)遍歷數(shù)字 并賦值給 $foo
{for $foo=1 to 3} <li>{$foo}</li> {/for}
{if}
作用:條件判斷(成對)
語法
{if $i==1} <p>i等于1</p> {elseif $i > 1} <p>i大于1</p> {else} <p>i肯定是小于1</p> {/if}
{date}
作用:返回格式化日期/時間(單標(biāo)簽)
參數(shù):
style 顯示時間的格式 參考:點(diǎn)擊跳轉(zhuǎn)
time 格林威治時間戳
語法:
{date style="Y年m月d日 h:i" time=$v['dateline']}
說明:
上例中的 $v['dateline'] 指的是時間戳變量
{isnavhover}
作用:返回導(dǎo)航高亮狀態(tài)
參數(shù):
nav 需要判斷的導(dǎo)航
class[可選] 如果高亮的話 返回的類,默認(rèn)為 a
語法:
<ul class="nav left cl"> {if $_Y['nav']['top']} {foreach $_Y['nav']['top'] as $v} {if $v['level'] == 1 && $v['open']} <li {isnavhover nav=$v}><a href="{$v['url']}" target="{$v['target']}" title="{$v['subtitle']}">{$v['title']}</a></li> {/if} {/foreach} {/if} </ul>
以上例子如果當(dāng)前高亮的導(dǎo)航返回class="a"
{articlebysql}
作用:根據(jù)條件取出指定數(shù)目的文章信息
參數(shù):
mod 模塊簡稱
return 指定返回的數(shù)組名稱
catids 欄目ID
pic [可選] 是否過濾無封面內(nèi)容 如果給定pic 的值(任何非空值)則會過濾無封面圖片的文章
limit [可選] 數(shù)據(jù)條數(shù) 如果不給定該值 則默認(rèn)返回 10 條數(shù)據(jù)
notaids [可選] 不包含的文章AID 給定的值將不在返回列表里,多個值用逗號隔開
sub [可選] 是否包含下級欄目內(nèi)容 如果給定sub 的值(任何非空值)則會返回包含下級欄目的數(shù)據(jù)
語法:
{articlebysql mod=$_Y['basescript'] limit=5 return="list" catids=$cat['catid']} <ul> {foreach $list as $v} <li{if $article['aid'] == $v['aid']} class="a"{/if}><a href="{$_Y['basescript']}-article-{$v['aid']}.html">{$v['title']}</a></li> {/foreach} <ul>
以上例子會返回一個 變量名為 $list 的數(shù)組 并使用 foreach 打印出來
{if $article['aid'] == $v['aid']} class="a"{/if}
****此處高亮判斷僅在以文章標(biāo)題為側(cè)欄欄目時適用,非此狀態(tài)下請刪除該判斷
{catsbysql}
作用:根據(jù)條件返回指定模塊的欄目列表
參數(shù):
mod 模塊簡稱
return 返回的數(shù)組名稱
catid [可選]欄目ID 如果給定值則只返回該欄目在內(nèi)的下級欄目,否則就返回指定mod下的所有欄目列表
語法:
{catsbysql mod="show" return="showcats"} <ul> {foreach $showcatsas as $v} <li><a href="show-list-{$v['catid']}-1.html">{$v['title']}</a></li> {/foreach} </ul>
{catbymod}
作用:根據(jù)指定模塊返回該模塊的頂級欄目信息
參數(shù):
mod 模塊簡稱
return 返回的數(shù)組名稱
語法:
{catbymod mod="show" return="showcat"} <a href="show-list-{$showcat['catid']-1.html}">{showcat['title']}</a>