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

返回列表 發(fā)帖
查看: 715|回復(fù): 3

[X5開發(fā)特性] X5 的細胞模板機制

75

主題

312

回帖

702

積分

管理員

貢獻
18 點
金幣
41 個
樓主
發(fā)表于 2024-11-11 10:45:24 | 只看樓主 |只看大圖 |倒序瀏覽 |閱讀模式
從 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 的模板就支持站長在后臺直接修改了。


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


下面~你自己試試吧!


從此,重復(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}

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

回復(fù)

使用道具 舉報

40

主題

3198

回帖

5451

積分

應(yīng)用開發(fā)者

Discuz! 運維

貢獻
215 點
金幣
685 個
QQ
沙發(fā)
發(fā)表于 2024-11-11 10:47:28 來自手機 | 只看Ta
沙發(fā)位已占
回復(fù)

使用道具 舉報

5

主題

80

回帖

97

積分

應(yīng)用開發(fā)者

貢獻
0 點
金幣
5 個
板凳
發(fā)表于 2024-11-11 19:27:00 | 只看Ta
二樓也不錯
回復(fù)

使用道具 舉報

1

主題

7

回帖

13

積分

初學(xué)乍練

貢獻
0 點
金幣
5 個
地板
發(fā)表于 2025-9-2 09:16:31 | 只看Ta
時隔一年才有三樓。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

  • 關(guān)注公眾號
  • 有償服務(wù)微信
  • 有償服務(wù)QQ

手機版|小黑屋|Discuz! 官方交流社區(qū) ( 皖I(lǐng)CP備16010102號 |皖公網(wǎng)安備34010302002376號 )|網(wǎng)站地圖|star

GMT+8, 2025-9-18 19:16 , Processed in 0.090111 second(s), 30 queries .

Powered by Discuz! W1.0 Licensed

Copyright © 2001-2025 Discuz! Team.

關(guān)燈 在本版發(fā)帖
有償服務(wù)QQ
有償服務(wù)微信
返回頂部
快速回復(fù) 返回頂部 返回列表