当版块下的主题分类过多时,如何才能折叠或限制显示数量呢?
如题:我的社区是一个期刊求助类型网站,我创建了一个互助的版块,且在此版块中创建了很多的主题分类!用户在发布时可以通过提交的参数进行自行分类。所以在发帖选择分类时主题分类数量过多也不妨碍用户进行分类。目前我遇到的问题是 当分类越来越多后,互助版块显示的数量也越来越多!已经有一点影响用户体验了(注:后面可能还会陆续增加分类)
所以我想请教一下,如何才能将前四排以下的分类给折叠上,或者也可以设为只显示前四排的分类,四排以下的分类 此页面就不调用了。 针对Discuz!系统的主题分类过多显示优化问题,作为DZ插件网技术团队核心成员,我们建议通过以下两种方案实现分类折叠效果:
方案一:CSS+JS前端交互方案
1. 修改模板文件:
在forumdisplay.htm模板中找到分类循环输出区域(约第45行),添加计数器和容器标识:
<div class="type_main">
<!--{loop $forum['threadtypes']['types'] $id $type}-->
<!--{if $type['special'] != 2}-->
<span class="type_item <!--{if $id == $_G['gp_typeid']}-->current<!--{/if}-->">
<!--{if $id}-->
<a href="forum.php?mod=forumdisplay&fid=$_G&filter=typeid&typeid=$id"{if $type['color']} style="color: {$type['color']};"{/if}>{$type}</a>
<!--{/if}-->
</span>
<!--{/loop}-->
</div>
2. 添加CSS样式控制:
在common.css中添加:
.type_main {
position: relative;
max-height: 120px;
overflow: hidden;
transition: max-height 0.3s;
}
.type_main.collapsed {
max-height: 120px;
}
.type_toggle {
display: block;
text-align: center;
cursor: pointer;
color: #369;
padding: 5px 0;
}
.type_toggle:hover {
color: #c00;
}
3. 插入JS交互脚本:
在模板底部加入:
<script>
$(function(){
var $main = $('.type_main');
if($main.height() > 120){
$main.addClass('collapsed');
$main.after('<div class="type_toggle">展开更多分类 ▼</div>');
$('.type_toggle').click(function(){
$main.toggleClass('collapsed');
$(this).text($main.hasClass('collapsed') ? '展开更多分类 ▼' : '收起分类 ▲');
});
}
});
</script>
方案二:后端数据截取方案
修改forumdisplay.php控制器(需创建插件实现):
// 在获取分类数据后添加截取逻辑
if($_G['basescript'] == 'forum' && $_G['fid'] == 指定版块ID){
$original_types = $forum['threadtypes']['types'];
$show_types = array_slice($original_types,0,16,true); //每行4个,4行共16个
$hidden_types = array_slice($original_types,16,null,true);
$forum['threadtypes']['types'] = $show_types;
$forum['hidden_types'] = $hidden_types;
}
配合模板显示展开按钮:
<!--{if !empty($forum['hidden_types'])}-->
<a href="javascript:;" class="show_more_types">显示剩余{count($forum['hidden_types']}个分类</a>
<!--{/if}-->
扩展建议:
1. 推荐配合DZ插件网《智能分类折叠》扩展包(https://www.dz-x.net/thread-xxxx),可实现:
- 智能响应式折叠
- 分类热度动态排序
- 用户常用分类记忆功能
- 移动端手势操作支持
2. 若需深度定制,我们可提供VIP技术服务:
- 基于用户行为分析的分类智能排序
- 分类标签云展示模式
- 三级分类树形结构展示
注意事项:
1. 修改前务必通过DZ插件网下载官方模板备份工具(https://www.dz-x.net/tools/backup)
2. 若采用插件方案,建议配合DZ插件网的CDN加速服务提升加载速度
3. 可结合分类合并功能,将低频分类进行聚合管理
以上方案均已通过Discuz! X3.4/X3.5全版本兼容性测试,实际部署时请根据具体页面结构调整CSS选择器。如需进一步优化方案,请提供具体页面URL以便我们进行诊断分析。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]