用戶自定義數據方法 {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] </ul> {/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] </ul> {/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] 的時候有用到。只不過這種情況是極少的
diy 方法中的公共可用字段
公共可用字段(所有type 類型可用)
[$title] //標題
[$summary] //描述
[$pic] //圖片路徑
[$url] //鏈接
[$moretitle] //欄目(更多)名稱
[$moresubtitle] //欄目(更多)副標題
[$moreurl] //欄目(更多)鏈接
[$<pic>] //img 標簽簡寫,原形:<img src="[$pic]" alt="[$title]" width="[$picwidth]" height="[$picheight]" />
[$<apic>] //帶鏈接的圖片簡寫,
原形:<a href="[$url]" target="_block"><img src="[$pic]" alt="[$title]" width="[$picwidth]" height="[$picheight]" /></a>
靜態DIY(static) 可用
[$title1]
[$title2]
[$title3]
[$summary1]
[$summary2]
[$summary3]
[$pic1]
[$pic2]
[$pic3]
[$url1]
[$url2]
[$url3]
動態DIY(news show team job about)可用
[$cattitle]
[$catsubtitle]
[$caturl]
注意事項
1、每個DIY返回數據可以被最多遍歷([loop])9次,如:
{diy type="static" id="test1" name="測試1" maxnum="10"} [loop] <div style="color:#BEE709"> <div>[$title]</div> <P>[$summary]</P> </div> [/loop] [loop1] <div style="color: #F00609"> <div>[$title]</div> <P>[$summary]</P> </div> [/loop1] [loop2] <div style="color: #0B1EEB"> <div>[$title]</div> <P>[$summary]</P> </div> [/loop2] <!--[loop3]...[/loop3]...--> {/diy}
2、每個 [loop] 里面最多可以聲明 12 個 [orderX]
3、每個 [loop] 里面最多可以聲明 9 個 [order/X]
4、{diy}、[loop]、[order] 里面都分別可以聲明 picwidth picheight datestyle 屬性,并且按照從里到外的優先級進行調用