久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

Discuz! 官方交流社區(qū)

標(biāo)題: X5 的細胞模板機制 [打印本頁]

作者: monkeye    時間: 2024-11-11 10:45
標(biāo)題: X5 的細胞模板機制
從 X5 開始,我們提供了細胞模板機制,在這個機制下,我們提供了有效且安全的模板修改方式,對于熟悉簡單 HTM 知識的站長來說,可以簡單修改模板的內(nèi)容。

這些都是新增的模板語法,細胞模板語法分為 2 類 {cell} 和 {cells}。

{cell} 語法為 "{cell file}",file 為 /template/xxx/cell/ 目錄下的文件,比如 {cell forum/threadlist/subject} 為 /template/xxx/cell/forum/threadlist/subject.htm 文件。
cell 的意義是把模板語法中包含 php 邏輯相關(guān)的內(nèi)容進行封裝,不讓用戶修改,進行封裝處理的一種方式

比如你可以在 cell 文件這里只寫半個 {loop}
  1. <!--{loop $_G['forum_threadlist'] $key $thread}-->
復(fù)制代碼
然后把 cell 命名為 {cell xxxx/loop_start},這樣在之前寫loop循環(huán)的地方直接寫  {cell xxxx/loop_start} 就可以了
再比如,有一段模板細節(jié)要重復(fù)寫很多次,你可以把這一段封裝成 {cell xxxx/lastposter}
  1. <!--{if $thread['lastposter']}--><a href="{if $thread[digest] != -2}home.php?mod=space&username=$thread[lastposterenc]{else}forum.php?mod=viewthread&tid=$thread[tid]&page={echo max(1, $thread[pages]);}{/if}" c="1">$thread[lastposter]</a><!--{else}-->$_G[setting][anonymoustext]<!--{/if}-->
復(fù)制代碼


然后再說 {cells},{cells} 是 {cell} 的集合,你可以把寫了一堆 {cell} 的一段代碼再次封裝成一個文件,放到 /template/xxx/cells/ 目錄下,同樣命名為 {cells file} 格式

比如:{cells forum/portal/navlist} 會調(diào)用 /template/xxxx/cells/default/forum/portal/navlist.htm
  1. <ul class="ttp cl">
  2. {cell forum/portal/navlist/loop_start}
  3. <li{cell forum/portal/navlist/current_class}><a href="{cell forum/portal/navlist/url}" ajaxtarget="threadlist">{cell forum/portal/navlist/name}</a></li>
  4. {cell forum/portal/navlist/loop_end}
  5. </ul>
復(fù)制代碼


更進一步的,如果 cells 的文件是 php 文件,這樣這段 cells 的模板就支持站長在后臺直接修改了。

[attach]32814[/attach]
在這個 php 中你需要寫一個 class,class 名稱和路徑一致,定義好 “$name” 名稱、 “$usage” 用法、“$cellList”所有cell列表、“$requireList”必填cell列表,然后定義一個 getDefault() 方法返回默認模板。后臺模板列表的細胞模板列表中就可以直接提供給用戶編輯這段模板了
[attach]32815[/attach]

下面~你自己試試吧!


從此,重復(fù)寫的一些內(nèi)容,你不用管代碼了,完全黑盒子一樣調(diào)用cell就行


比如開發(fā)模板時模板頭部的一堆重復(fù)內(nèi)容不用再復(fù)制過來了,直接引用下面3個cells:

{cells common/header/meta}
{cells common/header/css}
{cells common/header/js}

就夠了,這樣官方如果有改動,第三方模板自然就變了


還有就是第三方登錄的:


{cells account/icons account/icons}

所有做登錄的地方引用下就可以了。不用在乎官方自己是怎么寫的,只需要引用這段細胞模板代碼


作者: 科站網(wǎng)    時間: 2024-11-11 10:47
沙發(fā)位已占
作者: uu8651    時間: 2024-11-11 19:27
二樓也不錯




歡迎光臨 Discuz! 官方交流社區(qū) (http://www.9999xn.com/) Powered by Discuz! W1.0