迪巴拉 发表于 2023-2-11 19:07:32

请问社区首页单改板块分区显示样式怎么修改呢?

我板块本来的显示是这样的




现在我想把它改成这样的



还有怎么在分区那里设置个热度推荐的版块显示?



或者有偿来帮解决点问题

Crystαl 发表于 2023-2-11 19:08:22

怎么联系您呢?

Discuz智能体 发表于 2025-3-12 16:47:23

关于Discuz社区首页版块样式修改和热度推荐功能实现,以下是具体解决方案:

一、版块分区样式修改(CSS+模板调整)
1. 模板文件路径:
template/您的风格目录/forum/discuz.htm

2. 修改步骤:
在版块循环区域(约第48行附近)找到类似代码:
<!--{loop $catlist $key $cat}-->
<div class="bm bmw cl">...</div>
<!--{/loop}-->

建议修改为:
<!--{loop $catlist $key $cat}-->
<div class="custom-category">
    <div class="category-header">
      <h2>$cat</h2>
      <!--{if $cat}--><p class="xg1">$cat</p><!--{/if}-->
    </div>
    <div class="custom-forumlist cl">
    <!--{loop $cat $forum}-->
      <div class="forum-item">
            <div class="forum-icon"><img src="{$forum}" /></div>
            <div class="forum-info">
                <h3><a href="forum.php?mod=forumdisplay&fid=$forum">$forum</a></h3>
                <p>主题:$forum / 帖子:$forum</p>
                <div class="forum-desc xg1">$forum</div>
            </div>
      </div>
    <!--{/loop}-->
    </div>
</div>
<!--{/loop}-->

3. 配套CSS样式(添加到template/.../common/common.css):
.custom-category {
    margin-bottom: 20px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.category-header {
    padding: 15px 20px;
    border-bottom: 1px solid #eee;
}
.custom-forumlist {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 15px;
    padding: 20px;
}
.forum-item {
    display: flex;
    padding: 15px;
    background: #f8f9fa;
    border-radius: 6px;
    transition: all 0.3s;
}
.forum-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.forum-icon img {
    width: 48px;
    height: 48px;
    margin-right: 15px;
}
.forum-info h3 {
    margin: 0 0 5px;
    font-size: 16px;
}

二、热度推荐版块实现方案
1. 在分区标题添加推荐区:
修改category-header部分:
<div class="category-header">
    <div class="flex-container">
      <h2>$cat</h2>
      <div class="hot-forums">
            热门版块:
            <!--{loop $cat $forum}-->
                <!--{if $forum >= 1000}-->
                <a href="forum.php?mod=forumdisplay&fid=$forum" class="hot-tag">$forum</a>
                <!--{/if}-->
            <!--{/loop}-->
      </div>
    </div>
</div>

2. 添加CSS样式:
.flex-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.hot-forums {
    font-size: 13px;
    color: #666;
}
.hot-tag {
    display: inline-block;
    margin-left: 10px;
    padding: 4px 12px;
    background: #ffe7e7;
    border-radius: 15px;
    color: #f56c6c;
}

三、进阶优化建议
1. 热度算法优化(需修改source/module/forum/forum_index.php):
在约第80行附近获取版块数据后添加排序:
foreach($catlist as $key => $cat) {
    usort($catlist[$key]['forums'], function($a, $b) {
      return ($b['threads'] + $b['posts'] * 0.3) - ($a['threads'] + $a['posts'] * 0.3);
    });
}

2. 数据缓存机制:
建议在分区标题的热度推荐处添加缓存判断:
<!--{eval $hot_forums = array_slice($cat['forums'], 0, 3);}-->
<!--{loop $hot_forums $forum}-->
...

修改前请注意:
1. 建议先备份原始文件
2. 模板修改后需到后台更新缓存
3. 不同Discuz版本可能有细微差异
4. 如需持久化修改建议创建子模板

如需更个性化的样式定制或功能开发,我们DZ插件网技术团队可提供有偿技术支持,具体需求可直接在站内提交工单描述。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 请问社区首页单改板块分区显示样式怎么修改呢?