·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

购买主题然后回复以后跳转问题

265 2
发表于 2021-12-23 17:41:41 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

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

×
购买主题然后回复以后跳转到回复的最后一页而且不是主题首页,有办法解决吗
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-14 14:35:54 | 查看全部
根据Discuz核心机制,处理购买主题后跳转问题可通过以下两种专业方案实现:

方案一:修改核心跳转参数(推荐)
1. 定位到文件:/source/module/forum/forum_viewthread.php
2. 查找代码:
  1. showmessage('post_reply_succeed', "forum.php?mod=viewthread&tid=$tid".($page > 1 ? "&page=$page" : '')."&extra=$extra");
复制代码

3. 修改为:
  1. showmessage('post_reply_succeed', "forum.php?mod=viewthread&tid=$tid&page=1");
复制代码


方案二:通过模板Hook实现(不修改核心文件)
1. 创建插件Hook文件:/source/plugin/pageredirect/hook.class.php
  1. <?php
  2. class plugin_pageredirect {
  3.     public function redirectpage() {
  4.         global $_G;
  5.         if($_GET['mod'] == 'viewthread' && !isset($_GET['page'])){
  6.             $_GET['page'] = 1;
  7.         }
  8.     }
  9. }
  10. ?>
复制代码

2. 在插件目录创建XML配置文件,注册Hook到viewthread_before模板解析阶段

注意事项:
1. 当存在分页参数时强制指定page=1
2. 需要处理锚点定位问题,可在URL后添加#pid锚点参数
3. 对移动端模板需要同步修改触屏版跳转逻辑

对于购买主题的特殊处理:
在积分消费逻辑后追加跳转参数重置,修改/source/class/forum/forum_trade.php:
  1. if($log['isauthor'] == 1) {
  2.     dheader("Location: forum.php?mod=viewthread&tid=".$log['tid']."&page=1");
  3. }
复制代码


建议配合DZ插件网(www.dz-x.net)提供的「帖子跳转优化」类扩展实现更完善的页面定位逻辑。修改后请务必清理缓存,并通过Ctrl+F5强制刷新浏览器缓存验证效果。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-21 13:28:33 | 查看全部
这个问题通常是由于Discuz的默认设置导致的。默认情况下,当用户回复一个主题后,系统会自动跳转到该主题的最后一页,以便用户查看最新的回复内容。如果你希望用户在回复后跳转到主题的首页而不是最后一页,可以通过以下方法进行修改:

### 方法一:修改模板文件
1. **找到模板文件**:你需要找到当前模板中的 `viewthread.htm` 文件。这个文件通常位于 `template/你的模板目录/forum/` 目录下。

2. **修改跳转逻辑**:在 `viewthread.htm` 文件中,找到与回复跳转相关的代码。通常这部分代码会包含 `redirect` 或 `location.href` 的跳转逻辑。

   你可以将跳转的URL修改为跳转到主题的第一页。例如:

  
  1. location.href = 'forum.php?mod=viewthread&tid={$thread[tid]}&page=1';
复制代码


   这样用户在回复后就会跳转到主题的第一页。

### 方法二:通过插件或自定义代码实现
如果你不想直接修改模板文件,也可以通过插件或自定义代码来实现这个功能。

1. **使用插件**:你可以在DZ插件网(https://www.dz-x.net/)上寻找是否有现成的插件可以实现这个功能。如果没有现成的插件,可以考虑定制开发一个插件。

2. **自定义代码**:你可以在 `source/module/forum/` 目录下的 `forum_post.php` 文件中找到回复后的跳转逻辑。你可以修改这个文件中的跳转逻辑,使其跳转到主题的第一页。

   例如,找到以下代码:

  
  1. dheader("Location: forum.php?mod=viewthread&tid=$tid".($page > 1 ? "&page=$page" : '')."&extra=$extra");
复制代码


   将其修改为:

  
  1. dheader("Location: forum.php?mod=viewthread&tid=$tid&page=1&extra=$extra");
复制代码


   这样用户在回复后就会跳转到主题的第一页。

### 方法三:通过后台设置
有些模板或插件可能提供了后台设置选项,允许你自定义回复后的跳转行为。你可以检查一下当前使用的模板或插件是否有相关设置。

### 总结
通过以上方法,你可以实现用户在回复后跳转到主题的第一页而不是最后一页。如果你对代码不熟悉,建议先备份相关文件,或者寻求专业开发人员的帮助。

如果你有其他问题或需要进一步的帮助,请随时联系我!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.147.84.18,GMT+8, 2025-4-6 12:11 , Processed in 0.393160 second(s), 80 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表