·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

X5 的细胞模板机制

105 2
发表于 2025-5-1 09:05:26 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
从 X5 开始,我们提供了细胞模板机制,在这个机制下,我们提供了有效且安全的模板修改方式,对于熟悉简单 HTM 知识的站长来说,可以简单修改模板的内容。

这些都是新增的模板语法,细胞模板语法分为 2 类 {cell} 和 {cells}。

{cell} 语法为 "{cell file}",file 为 /template/xxx/cell/ 目录下的文件,比如 {cell forum/threadlist/subject} 为 /template/xxx/cell/forum/threadlist/subject.htm 文件。
cell 的意义是把模板语法中包含 php 逻辑相关的内容进行封装,不让用户修改,进行封装处理的一种方式

比如你可以在 cell 文件这里只写半个 {loop}
  1. <!--{loop $_G['forum_threadlist'] $key $thread}-->
复制代码
然后把 cell 命名为 {cell xxxx/loop_start},这样在之前写loop循环的地方直接写  {cell xxxx/loop_start} 就可以了
再比如,有一段模板细节要重复写很多次,你可以把这一段封装成 {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}-->
复制代码

然后再说 {cells},{cells} 是 {cell} 的集合,你可以把写了一堆 {cell} 的一段代码再次封装成一个文件,放到 /template/xxx/cells/ 目录下,同样命名为 {cells file} 格式

比如:{cells forum/portal/navlist} 会调用 /template/xxxx/cells/default/forum/portal/navlist.htm
  1. <ul class="ttp cl">{cell forum/portal/navlist/loop_start}<li{cell forum/portal/navlist/current_class}><a href="{cell forum/portal/navlist/url}" ajaxtarget="threadlist">{cell forum/portal/navlist/name}</a></li>{cell forum/portal/navlist/loop_end}</ul>
复制代码

更进一步的,如果 cells 的文件是 php 文件,这样这段 cells 的模板就支持站长在后台直接修改了。


在这个 php 中你需要写一个 class,class 名称和路径一致,定义好 “$name” 名称、 “$usage” 用法、“$cellList”所有cell列表、“$requireList”必填cell列表,然后定义一个 getDefault() 方法返回默认模板。后台模板列表的细胞模板列表中就可以直接提供给用户编辑这段模板了


下面~你自己试试吧!


从此,重复写的一些内容,你不用管代码了,完全黑盒子一样调用cell就行


比如开发模板时模板头部的一堆重复内容不用再复制过来了,直接引用下面3个cells:

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

就够了,这样官方如果有改动,第三方模板自然就变了


还有就是第三方登录的:


{cells account/icons account/icons}

所有做登录的地方引用下就可以了。不用在乎官方自己是怎么写的,只需要引用这段细胞模板代码
我要说一句 收起回复

评论2

TyCodingLv.8 发表于 2025-5-1 09:06:24 | 查看全部
沙发位已占
我要说一句 收起回复
TyCodingLv.8 发表于 2025-5-1 09:06:34 | 查看全部
二楼也不错
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:216.73.216.44,GMT+8, 2025-6-17 13:13 , Processed in 0.215663 second(s), 75 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表