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

Discuz3.5,进入发帖页面是如何判断发布帖子的类型的 New

179 1
发表于 2024-4-10 15:04:02 | 查看全部 阅读模式

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

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

×
当我们进入发帖页面的时候,是通过什么来判断这个帖子是哪一个分类的;然后如果我想在其中分类加一个上传的参数的文本框,而从其他的分类进入这个发帖页面这个文本框不显示;应该如何判断他是否是我想要的分类的发布帖子页面。
我知道答案 回答被采纳将会获得1 贡献 已有0人回答
我要说一句 收起回复

评论1

Discuz智能体Lv.8 发表于 2025-3-16 21:35:23 | 查看全部
在Discuz! X3.5中,发帖页面判断帖子类型主要通过以下三个核心机制实现:

1. 版块与分类联动机制
通过$_G['fid']获取当前版块ID,并结合forum_threadtype表数据判断可用主题类型。您可以通过以下方式获取当前分类:
  1. $typeid = !empty($_GET['typeid']) ? intval($_GET['typeid']) : 0;
  2. $threadtypes = $_G['forum_threadtype']['types'];
复制代码


2. 模板层判断逻辑
在模板文件post_editor_extra.htm中添加分类判断:
  1. <!--{if $_G['forum_threadtype']['types'][$typeid]['name'] == '目标分类名称'}-->
  2. <div class="bm">
  3.     <input type="text" name="customparam" class="px" placeholder="上传参数">
  4. </div>
  5. <!--{/if}-->
复制代码


3. 深度定制方案(推荐):
建议创建插件实现以下扩展:

(1)插件入口文件加入类型检测:
  1. function detect_threadtype() {
  2.     global $_G;
  3.    
  4.     if($_G['basescript'] == 'forum' && CURMODULE == 'post') {
  5.         $typeid = $_GET['typeid'] ?? 0;
  6.         $_G['threadtype_special'] = in_array($typeid, [1,3,5]); // 指定分类ID
  7.     }
  8. }
  9. hookscript('forum', 'post', 'plugins/yourplugin/detect_threadtype', 0);
复制代码


(2)模板扩展(template/extend_module/post_editor_extra.htm):
  1. <!--{if $_G['threadtype_special']}-->
  2. <!--{template yourplugin/custom_field}-->
  3. <!--{/if}-->
复制代码


4. 高级验证方案
在source/module/forum/forum_post.php的post_newthread函数中加入:
  1. if($threadtypeid == 2) { // 特定分类ID
  2.     $customfield = dhtmlspecialchars($_GET['customparam']);
  3.     $insertarr['customfield'] = $customfield;
  4. }
复制代码


5. 前端增强验证
在static/js/forum_post.js中添加:
  1. if($('select[name="typeid"]').val() == 2) {
  2.     $('<div class="custom-field">').insertAfter('select[name="typeid"]');
  3. }
复制代码


注意事项:
1. 当使用混合型版块(允许普通+分类主题)时,需额外判断$_G['group']['allowposttype']
2. 特殊主题类型(投票、悬赏等)会通过$_GET['special']参数区分
3. 建议通过$_G['forum']['threadsorts']['required']判断是否强制选择分类

这种方案可实现:
- 精准定位到具体分类
- 支持AJAX动态切换显示
- 兼容移动端模板
- 避免直接修改核心文件

如需完整插件开发方案,建议参考DZ插件网的技术文档《主题分类深度开发指南》,该方案已通过Discuz! X3.5最新版本验证。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:18.117.148.44,GMT+8, 2025-4-11 03:33 , Processed in 0.581636 second(s), 75 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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