Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[修改] 厌倦了子版块的展示UI?换成选项卡试试[代码]

[复制链接]
imaxis 发表于 2012-5-10 17:25:00 | 显示全部楼层 |阅读模式
本帖最后由 imaxis 于 2012-5-10 17:40 编辑

本帖提供将官方模板子版块展示方式修改为选项卡功能 (第一次发帖 敬请拍砖
本人Discuz! X2.5亲测可用。
论坛已经有人提过这样的问题: 怎么设置子版块选项卡式浏览 ,网上搜索 无解。只好自己改模版。
Step 1:
打开 template\default\forum\forumdisplay.htm,查找 <!--{if $subexists && $_G['page'] == 1}-->
我们可以看到显示子版块调用的是 forumdisplay_subforum.htm模板
Step 2:
    谨慎起见,复制forumdisplay_subforum.htm一份,并重命名为 forumdisplay_subforum_tab.htm
   打开 forumdisplay_subforum_tab.htm
   第一行 插入代码:
  1. <ul id="subforum_tab" class="ttp bm cl">
  2. <li id="subforum_all" class="xw1 a"><a href="forum.php?mod=forumdisplay&fid={$_G[forum][fid]}">全部</a></li>
  3. <!--{loop $sublist $sub}-->
  4. <!--{eval $forumurltab = !empty($sub['domain']) && !empty($_G['setting']['domain']['root']['forum']) ? 'http://'.$sub['domain'].'.'.$_G['setting']['domain']['root']['forum'] : 'forum.php?mod=forumdisplay&fid='.$sub['fid'];}-->
  5. <li><a href="$forumurltab" {if !empty($sub[redirect])}target="_blank"{/if} style="{if !empty($sub[extra][namecolor])}color: {$sub[extra][namecolor]};{/if}">$sub[name]</a></li>
  6. <!--{/loop}-->
  7. </ul>
复制代码
保存。OK,具有选项卡UI的子版块模板完成。
    打开 forumdisplay.htm查找 <!--{if $subexists && $_G['page'] == 1}--> 将 if 条件里面的 代码替换为调用我们刚才创建的模版 代码为:<!--{template forum/forumdisplay_subforum_tab}-->
   保存。打开论坛随便一个有子版块的版块,即可看到。
截图看附件。
go on..........
点击子版块链接,打开发现选项卡又消失了!!! (我要实现的是 最末级版块要显示同级版块选项卡)
Step 3:
     继续打开template\default\forum\forumdisplay.htm,查找 <!--{if $subexists && $_G['page'] == 1}-->,问题就出在这个if判断,没有子版块就不会调用任何模版,肯定不会有HTML输出了。so 我的思路是另加一个提供展示同级版块的模版,在else里调用。
     查找<!--{if $subexists && $_G['page'] == 1}--> 目前代码为:<!--{if $subexists && $_G['page'] == 1}--><!--{template forum/forumdisplay_subforum_tab}--><!--{/if}-->替换为:
  1. <!--{if $subexists && $_G['page'] == 1}-->
  2.                                 <!--{template forum/forumdisplay_subforum_tab}-->
  3.                         <!--{else}-->
  4.                                 <!--{template forum/forumdisplay_levelforum_tab}-->
  5.                         <!--{/if}-->
复制代码
下一步将我们之前新增的forumdisplay_subforum_tab.htm 复制一份 重命名为:forumdisplay_levelforum_tab.htm并打开,代码全部删掉,替换为:
  1. <ul id="sameforum_tab" class="ttp bm cl">
  2. <li id="sameforum_all"><a href="forum.php?mod=forumdisplay&fid={$_G['forum']['fup']}">全部</a></li>
  3. <!--{loop $sameLevelForums $sub}-->
  4. <!--{eval $forumurltab = !empty($sub['domain']) && !empty($_G['setting']['domain']['root']['forum']) ? 'http://'.$sub['domain'].'.'.$_G['setting']['domain']['root']['forum'] : 'forum.php?mod=forumdisplay&fid='.$sub['fid'];}-->
  5. <li {if $sub[fid]==$_G['fid'] }class="xw1 a"{/if}><a href="$forumurltab" {if !empty($sub[redirect])}target="_blank"{/if} style="{if !empty($sub[extra][namecolor])}color: {$sub[extra][namecolor]};{/if}">$sub[name]</a></li>
  6. <!--{/loop}-->
  7. </ul>
复制代码
最后一步:
    打开 source\moudle\forum\forum_forumdisplay.php 查找 $page = $_G['setting']['threadmaxpages'] && $page > $_G['setting']['threadmaxpages'] ? 1 : $page;
在下面添加:
  1. //---edit
  2. $sameLevelForums = array();
  3. $sameLevelForumsquery = C::t('forum_forum')->fetch_all_info_by_fids(0, 'available', 0, $_G['forum']['fup'], 1, 0, 0, 'sub');
  4. foreach($sameLevelForumsquery as $sameLvl) {
  5.         $sameLevelForums[] = $sameLvl;
  6. }
复制代码
完工!
本人刚接触discuz 对discuz PHP都不熟,如有任何问题还请各位大拿指正。未测试对discuz其他模块造成影响!!!


本帖子中包含更多资源

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

x
chengmei 发表于 2012-5-10 17:35:15 | 显示全部楼层
支持一下,只有路过而已,没法。
回复

使用道具 举报

dark_ 发表于 2012-5-10 18:30:43 | 显示全部楼层
   {:soso_e142:}
回复

使用道具 举报

 楼主| imaxis 发表于 2012-5-10 22:01:18 | 显示全部楼层
多谢支持
回复

使用道具 举报

山东中扬科技 发表于 2012-5-10 22:03:22 | 显示全部楼层
呵呵 对于我来说 你是高手www.zhegequan.com
回复

使用道具 举报

听吧 发表于 2012-5-11 17:29:19 | 显示全部楼层
好帖,确实好帖!
回复

使用道具 举报

1314学习网 发表于 2012-5-11 23:00:47 | 显示全部楼层
支持下。。。。。。。
回复

使用道具 举报

龙坤商城 发表于 2012-9-13 00:51:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

梦想! 发表于 2012-9-13 23:26:34 | 显示全部楼层
{:soso_e974:}           多谢支持
回复

使用道具 举报

1194957326 发表于 2013-12-30 22:04:08 | 显示全部楼层
确实是好帖,绝对我技术帖。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 01:53 , Processed in 0.027369 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表