查看: 76|回复: 9

[教程] 给大家一段福利代码:Discuz!贴子详情页也能正确展示所属版块

[复制链接]

2

主题

35

回帖

0

积分

积极分子

金币
35
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-7-28
发表于 2025-3-4 11:31:15 | 显示全部楼层 |阅读模式
注:如果你的版块名称/链接是在主导航栏上的,可以用以下代码,反之就不要看了。

默认情况下,在贴子详情页,主导航栏的默认选中“论坛”选项卡,但我的贴子明明是属于xxxx版块呀,为什么不会自动定位到主导航栏上的xxxx版块呢?

那是因为你没有加以下代码:
修改文件:
template\default\common\footer.htm

找到这一句:<div id="scrolltop"> 在其上加以下代码:
  1. <script type="text/javascript">
  2.         if(jQuery  && fid) {
  3.                 jQuery(document).ready(function(){
  4.                         jQuery('#nv > ul > li').removeClass('a');
  5.                         jQuery('#nv > ul > li a[href$="fid=' + fid + '"]').parent().addClass('a');
  6.                 });
  7.         }
  8. </script>
清理模板缓存和数据缓存后,到贴子详情页刷新一下页面看看,有没有自动定位到主导航栏的版块。


有眼尖的小朋友看到主导航栏自动切换了一下,觉得 心里不爽,能不能打开页面就自动定位,不要让它这样明显的切换。
可以试一下用:
<!--{if $_G[fid]}-->

上面的那一段JS代码
<!--{/if}-->

清理模板缓存和数据缓存后,到贴子详情页刷新一下页面看看???


为了体验,你确定不试一下吗?
版块, 导航, 代码, 贴子, 详情
回复

使用道具 举报

39

主题

630

回帖

0

积分

积极分子

金币
630
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2010-7-27
发表于 2025-3-4 11:49:07 | 显示全部楼层
挺好,虽然是纯前端实现的,但还是有挺多人会需要的
回复

使用道具 举报

3

主题

14

回帖

0

积分

积极分子

金币
14
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2012-1-27
发表于 2025-3-4 12:44:55 | 显示全部楼层
楼主能上个效果图吗?谢谢你
回复

使用道具 举报

2

主题

35

回帖

0

积分

积极分子

金币
35
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-7-28
 楼主| 发表于 2025-3-4 14:17:54 | 显示全部楼层

图都截好 了,结果没有上传。唉。



回复

使用道具 举报

8

主题

188

回帖

0

积分

积极分子

金币
188
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2010-12-1
发表于 2025-3-4 14:50:27 | 显示全部楼层
不错,挺多人需要这个代码的
回复

使用道具 举报

30

主题

178

回帖

0

积分

积极分子

金币
178
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-6-13
发表于 2025-3-6 13:37:21 | 显示全部楼层
  1. <!--{if $_G[fid]}-->
  2. <script>
  3. // 贴内显示上级板块

  4.     if(jQuery  && fid) {
  5.                 jQuery(document).ready(function(){
  6.                      var fid = $_G['fid'];
  7.                         jQuery('.dingzhi_navigate > ul > li').removeClass('a');
  8.                         jQuery('.dingzhi_navigate a[href*="forum-' + fid + '-"]').closest('li').addClass('a');
  9. });
  10.         }
  11. </script>
  12. <!--{/if}-->


我是第三方模板,不能直接用,稍微修改了一下,.dingzhi_navigate是主导航的样式,然后就是原版是那种动态链接的模式把,我的链接结尾是html,所以改成了[href*="forum-' + fid + '-"],当然了,我本人不是很懂,借助了一下AI。
回复

使用道具 举报

2

主题

35

回帖

0

积分

积极分子

金币
35
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-7-28
 楼主| 发表于 2025-3-6 15:59:08 | 显示全部楼层

你的这个代码是用了urlrewrite,发完贴第二天才想起来,我的代码不支持urlrewrite,想再发个贴,后来有人找我。就把这事给忘记了。

其实主要是匹配fid。var fid = $_G['fid'];    这一句,有没有无所谓。
回复

使用道具 举报

30

主题

178

回帖

0

积分

积极分子

金币
178
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-6-13
发表于 2025-3-6 16:35:33 | 显示全部楼层

怎么让它在列表页也生效呢?
回复

使用道具 举报

2

主题

35

回帖

0

积分

积极分子

金币
35
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-7-28
 楼主| 发表于 2025-3-7 15:02:16 | 显示全部楼层

理论上这段代码在列表和主题页都好用。

如果是官方默认的模板+没用urlrewrite,我原本代码就可以。

如果用了urlrewrite,jQuery('#nv > ul > li a[href$="fid=' + fid + '"]').parent().addClass('a');改为

jQuery('#nv > ul > li a[href*="forum-' + fid + '-"]').parent().addClass('a');

试下吧。
回复

使用道具 举报

0

主题

67

回帖

0

积分

积极分子

金币
67
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2010-7-11
发表于 2025-4-22 23:26:54 | 显示全部楼层
看了半天才明白点,你只有一个默认板块,如果板块多了,不可能都在导航里显示吧。另外收索下面不是有一排路径导航吗。呵,我倒是把这一排导航删除了。
回复

使用道具 举报

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

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部