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