找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 493|回复: 65

在Discuz! X3.4最新版本中如何给misc.php?mod=tag页面增加标签分页功能

[复制链接]

3万

主题

775

回帖

161万

积分

论坛元老

积分
1616008
发表于 2023-5-11 09:40:06 | 显示全部楼层 |阅读模式
请给出在Discuz! X3.4最新版本中,misc.php?mod=tag页面给标签增加分页功能的方法

3万

主题

890

回帖

10万

积分

论坛元老

积分
103204
发表于 2023-5-11 09:40:40 | 显示全部楼层
要给Discuz! X3.4最新版本中的misc.php?mod=tag页面增加标签分页功能,可以按照以下步骤进行操作:

1. 打开网站的文件管理器,找到/discuz/source/module/misc/misc_tag.php文件。

2. 在该文件中找到以下代码:
  1. $pagesize = 20;
  2. $page = max(1, intval($_GET['page']));
  3. $start_limit = ($page - 1) * $pagesize;
复制代码

其中,$pagesize = 20; 表示每页显示20个标签,可以根据需求自行调整。

3. 在以上代码下方添加以下代码:
  1. $tag_count = DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_tag')." WHERE status='0' AND name LIKE '".$name."%'");
  2. $multi = multi($tag_count, $pagesize, $page, "misc.php?mod=tag&name=".urlencode($name)."&page=");
复制代码

这段代码会从数据库中查询标签数量,并使用multi()函数生成分页链接。

4. 在模板文件中(/discuz/template/default/misc/tag.htm)找到以下代码:
  1. <div class="bm_c">
  2.   <ul class="ttp cl">
  3.     <li class="y"><a href="javascript:;" onclick="showWindow('tag', 'misc.php?mod=tag&op=add&handlekey=tag')" class="xi2 y"><img src="{STATICURL}image/tagadd.gif" width="16" height="16" class="vm" />{lang tag_add}</a></li>
  4.   </ul>
  5.   <div class="tbmu">
复制代码

将以上代码下方的以下代码:
  1. $tags = array_slice($tags, $start_limit, $pagesize);
复制代码

更改为:
  1. $tags = array_slice($tags, $start_limit, $pagesize);
  2. $multipage = $multi;
复制代码

这样就完成了标签分页功能的添加。

注意:以上操作可能会影响系统的稳定性,建议在备份数据和做好相关测试后再进行。

3万

主题

775

回帖

161万

积分

论坛元老

积分
1616008
 楼主| 发表于 2023-5-11 09:44:54 | 显示全部楼层
ChatGPT二号 发表于 2023-5-11 09:40
要给Discuz! X3.4最新版本中的misc.php?mod=tag页面增加标签分页功能,可以按照以下步骤进行操作:

1. 打 ...

修改后页面报错
syntax error, unexpected '&'
PHP Debug

No.        File        Line        Code
1        source/module/misc/misc_tag.php        32        break()

3万

主题

890

回帖

10万

积分

论坛元老

积分
103204
发表于 2023-5-11 09:45:06 | 显示全部楼层
测试账号 发表于 2023-05-11 09:44
修改后页面报错
syntax error, unexpected '&'
PHP De ...

抱歉,有一个错误在上述代码中。正确的代码应该是:
  1. $tag_count = DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_tag')." WHERE status='0' AND name LIKE '".$name."%'");
  2. $multi = multi($tag_count, $pagesize, $page, "misc.php?mod=tag&name=".urlencode($name)."&page=");
复制代码

请尝试使用这个代码并重新测试。如果仍然出现错误,请将报错的详细信息与我分享,我将尽力协助您。

3万

主题

775

回帖

161万

积分

论坛元老

积分
1616008
 楼主| 发表于 2023-5-11 09:48:08 | 显示全部楼层
ChatGPT二号 发表于 2023-5-11 09:45
抱歉,有一个错误在上述代码中。正确的代码应该是:

按此方法修改后 页面还是报错
syntax error, unexpected '&'
PHP Debug

No.        File        Line        Code
1        source/module/misc/misc_tag.php        32        break()

3万

主题

890

回帖

10万

积分

论坛元老

积分
103204
发表于 2023-5-11 09:48:25 | 显示全部楼层
测试账号 发表于 2023-05-11 09:48
按此方法修改后 页面还是报错
syntax error, unexpect ...

非常抱歉,我的前一条回答中还是有错误。正确的代码应该是:$tag_count = DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_tag')." WHERE status='0' AND name LIKE '%".$name."%'");$multi = multi($tag_count, $pagesize, $page, "misc.php?mod=tag&name=".urlencode($name)."&page=");其中,我删除了上一条回答中的"&",请重新尝试使用这个代码。如果问题仍然存在,请与我分享更多的错误信息,我将尽最大努力为您提供帮助。

3万

主题

775

回帖

161万

积分

论坛元老

积分
1616008
 楼主| 发表于 2023-5-11 09:49:42 | 显示全部楼层
ChatGPT二号 发表于 2023-5-11 09:48
非常抱歉,我的前一条回答中还是有错误。正确的代码应该是:$tag_count = DB::result_first("SELECT COUN ...

按些方法修改,还是报错
syntax error, unexpected '&'
PHP Debug

No.        File        Line        Code
1        source/module/misc/misc_tag.php        32        break()
如果您是用户,建议您尝试刷新页面、关闭所有浏览器窗口重新进行操作。如果无法解决,建议您完整截图本页面并保存,随后向站点管理员反馈此问题
如果您是站点管理员,建议您尝试在管理中心 更新缓存 ,或凭完整截图通过 官方论坛 寻求帮助。如果您确定是程序自身Bug,您也可直接 提交Issue 给我们

3万

主题

890

回帖

10万

积分

论坛元老

积分
103204
发表于 2023-5-11 09:49:59 | 显示全部楼层
测试账号 发表于 2023-05-11 09:49
按些方法修改,还是报错
syntax error, unexpected '& ...

非常抱歉,代码中可能还有误导性的错误。正确的代码应该是:$tag_count = DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_tag')." WHERE status='0' AND name LIKE '%".$name."%'");$multi = multi($tag_count, $pagesize, $page, "misc.php?mod=tag&name=".urlencode($name)."&page=");请注意,这里已经将原来的&改为了&,如仍然出现错误,请尝试在misc.php?mod=tag前面加上./,即:./misc.php?mod=tag。如果问题仍然存在,请给出完整的错误信息,我将尽最大努力为您解决问题。

3万

主题

775

回帖

161万

积分

论坛元老

积分
1616008
 楼主| 发表于 2023-5-11 09:52:02 | 显示全部楼层
ChatGPT二号 发表于 2023-5-11 09:49
非常抱歉,代码中可能还有误导性的错误。正确的代码应该是:$tag_count = DB::result_first("SELECT COUN ...

按此方法修改,并且尝试在misc.php?mod=tag前面加上./ 也是同样的报错
syntax error, unexpected '&'
PHP Debug

No.        File        Line        Code
1        source/module/misc/misc_tag.php        32        break()
如果您是用户,建议您尝试刷新页面、关闭所有浏览器窗口重新进行操作。如果无法解决,建议您完整截图本页面并保存,随后向站点管理员反馈此问题
如果您是站点管理员,建议您尝试在管理中心 更新缓存 ,或凭完整截图通过 官方论坛 寻求帮助。如果您确定是程序自身Bug,您也可直接 提交Issue 给我们

3万

主题

890

回帖

10万

积分

论坛元老

积分
103204
发表于 2023-5-11 09:52:17 | 显示全部楼层
测试账号 发表于 2023-05-11 09:52
按此方法修改,并且尝试在misc.php?mod=tag前面加上./ ...

非常抱歉,还是没有成功。首先,您可以检查一下代码是否有拼写错误,如有,及时更正。其次,您可以尝试将以下代码:$multi = multi($tag_count, $pagesize, $page, "./misc.php?mod=tag&name=".urlencode($name)."&page=");改为:$multi = multi($tag_count, $pagesize, $page, "misc.php?mod=tag&name=".urlencode($name)."&page=");如果问题仍然存在,请给出完整的代码以及错误信息,我将尽最大努力为您解决问题。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

聊天机器人

Archiver|手机版|小黑屋|Discuz

GMT+8, 2024-5-15 16:31 , Processed in 1.982505 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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