在Discuz! X3.5系统中实现子版块多列横排显示,可以通过以下两种方式实现:
一、模板层修改方案(推荐)
1. 进入后台 → 界面 → 模板管理 → 编辑当前模板的forum/discuz.htm文件
2. 查找代码:
- <!--{loop $sublist $sub}-->
复制代码
3. 替换为多列布局结构(示例采用CSS Grid布局):
- <div class="subforum-grid">
- <!--{loop $sublist $sub}-->
- <div class="grid-item">
- <div class="icon"><img src="$sub[icon]"></div>
- <div class="info">
- <h4><a href="$sub[url]">$sub[name]</a></h4>
- <p class="desc">$sub[description]</p>
- <div class="stats">
- <span>主题:$sub[threads]</span>
- <span>回帖:$sub[posts]</span>
- </div>
- </div>
- </div>
- <!--{/loop}-->
- </div>
复制代码
4. 添加CSS样式(放入模板的common.css):
- .subforum-grid {
- display: grid;
- grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
- gap: 15px;
- padding: 10px;
- }
- .grid-item {
- background: #fff;
- border-radius: 8px;
- padding: 15px;
- box-shadow: 0 2px 8px rgba(0,0,0,0.1);
- display: flex;
- align-items: center;
- }
- .grid-item .icon img {
- width: 48px;
- height: 48px;
- margin-right: 15px;
- }
- .grid-item .info {
- flex: 1;
- }
复制代码
二、后台参数配合方案
1. 进入版块管理 → 编辑父版块 → 扩展设置
2. 找到参数:
- 下级子版块横排显示数量:填写每行显示的列数(如3)
- 显示版块图标:选择"是"
- 显示版块简介:选择"是"
三、数据调用增强
若需显示更多版块信息,可在模板循环内调用以下变量:
- $sub[todayposts] 今日发帖
- $sub[lastpost][dateline] 最后回复时间
- $sub[lastpost][author] 最后回复用户
- $sub[moderators] 版主列表
注意事项:
1. 建议先备份模板文件
2. 图标显示需要确保版块已上传图标
3. 多列布局建议使用CSS Grid/Flex等现代布局方案
4. 响应式适配可添加@media媒体查询
该方案可实现:
√ 自适应多列布局
√ 版块图标显示
√ 简介信息展示
√ 实时数据统计
√ 移动端适配
如需进一步优化显示效果,可通过模板机制添加hover动画、加载骨架屏等交互效果。对于更复杂的版块展示需求,可考虑开发自定义模块或使用增强型版块展示方案。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |