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

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

[X5開(kāi)發(fā)特性] X5 的細(xì)胞模板機(jī)制

73

主題

243

回帖

591

積分

管理員

貢獻(xiàn)
12 點(diǎn)
金幣
41 個(gè)
QQ
樓主
發(fā)表于 2024-11-11 10:45:24 | 只看樓主 |倒序?yàn)g覽 |閱讀模式
從 X5 開(kāi)始,我們提供了細(xì)胞模板機(jī)制,在這個(gè)機(jī)制下,我們提供了有效且安全的模板修改方式,對(duì)于熟悉簡(jiǎn)單 HTM 知識(shí)的站長(zhǎng)來(lái)說(shuō),可以簡(jiǎn)單修改模板的內(nèi)容。

這些都是新增的模板語(yǔ)法,細(xì)胞模板語(yǔ)法分為 2 類(lèi) {cell} 和 {cells}。

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

比如你可以在 cell 文件這里只寫(xiě)半個(gè) {loop}
  1. <!--{loop $_G['forum_threadlist'] $key $thread}-->
復(fù)制代碼
然后把 cell 命名為 {cell xxxx/loop_start},這樣在之前寫(xiě)loop循環(huán)的地方直接寫(xiě)  {cell xxxx/loop_start} 就可以了
再比如,有一段模板細(xì)節(jié)要重復(fù)寫(xiě)很多次,你可以把這一段封裝成 {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ù)制代碼


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

比如:{cells forum/portal/navlist} 會(huì)調(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ù)制代碼


更進(jìn)一步的,如果 cells 的文件是 php 文件,這樣這段 cells 的模板就支持站長(zhǎng)在后臺(tái)直接修改了。


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


下面~你自己試試吧!


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


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

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

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


還有就是第三方登錄的:


{cells account/icons account/icons}

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

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒(méi)有賬號(hào)?立即注冊(cè)

×
回復(fù)

使用道具 舉報(bào)

39

主題

2866

回帖

4910

積分

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

Discuz! 運(yùn)維

貢獻(xiàn)
181 點(diǎn)
金幣
661 個(gè)
QQ
沙發(fā)
發(fā)表于 2024-11-11 10:47:28 來(lái)自手機(jī) | 只看Ta
沙發(fā)位已占
回復(fù)

使用道具 舉報(bào)

1

主題

70

回帖

88

積分

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

貢獻(xiàn)
0 點(diǎn)
金幣
11 個(gè)
板凳
發(fā)表于 2024-11-11 19:27:00 | 只看Ta
二樓也不錯(cuò)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

GMT+8, 2025-7-1 16:27 , Processed in 0.040529 second(s), 11 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2025 Discuz! Team.

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