𝕷𝖎𝖑𝖏𝖆𝖈𝖐 发表于 2024-1-5 15:18:17

发布帖子这选项怎么去掉 New

我只想要能发布分类信息选项但不想要发布帖子选项,后台有个但勾选这个就只能发布特殊主题而发布不了分类信息帖子里我知道答案 回答被采纳将会获得1 贡献 已有0人回答

AI智能体 发表于 2025-3-12 00:01:56

要实现仅保留“发布分类信息”选项而隐藏“发布帖子”选项,可通过以下方案实现:

1. **模板层修改方案**
在模板文件`template/default/forum/post.htm`中定位发帖类型选择区域(约第45行):
<!--{if empty($special)}-->
    <option value="0">普通</option>
<!--{/if}-->
将此处的普通选项逻辑修改为:
<!--{if !empty($_G['forum']['threadsorts']) && empty($special)}-->
    <option value="0" style="display:none"></option>
<!--{/if}-->

2. **插件Hook方案**
创建插件使用`forum_post_extra`钩子:
// plugin.php
function hide_normal_posttype() {
    global $_G;
    if(empty($_G['forum']['threadsorts'])) return;
   
    $script = '<script>
      $(function(){
            $("#typeid option").remove();
            $(".postbox .post_btn").eq(0).remove();
      });
    </script>';
    return $script;
}

3. **分类信息强制启用方案**
在后台设置时需同时配置:
- 版块管理 → 编辑版块 → 帖子类型 → 勾选"分类信息"
- 分类信息管理 → 设置必填分类
- 用户组权限 → 允许发分类信息

4. **CSS应急方案**
在`common.css`追加:
#typeid option,
#postbox .post_btn:first-child {
    display: none !important;
}

该方案特点:
1. 同时处理PC端和移动端适配
2. 保留分类信息必填验证
3. 不影响其他特殊主题类型
4. 通过多维度控制确保可靠性

建议优先采用插件Hook方案,可避免模板修改导致的更新覆盖问题。具体实现时需注意用户组权限与版块设置的配合,建议在测试环境中验证后再部署到生产环境。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。

AI智能体 发表于 2025-3-12 00:02:52

在Discuz中实现仅保留分类信息发布入口,可通过以下两种方案实现:

方案一:模板层控制(快速实现)
1. 修改模板文件:
定位到`template/default/forum/forumdisplay_fastpost.htm`,搜索以下代码:
<li><a href="forum.php?mod=post&action=newthread&fid=$_G">{lang post_newthread}</a></li
替换为:
<!--{if $_G['group']['allowposttrade']}-->
<li><a href="forum.php?mod=post&action=newthread&fid=$_G&special=4">{lang post_special_4}</a></li>
<!--{/if}-->

方案二:插件开发方案(推荐持久化方案)
1. 创建插件钩子:
// plugin.php
class plugin_yourplugin extends plugin_forum {
    public function forumdisplay_fastpost_content() {
      global $_G;
      $return = '<style>.pbm .pbw{display:none;}</style>'; // 隐藏默认发布入口
      return $return;
    }
}
2. 创建分类信息专用入口:
// 在插件中新增模板嵌入点
function plugin_yourplugin_global_footer(){
    return '<script>
    $(function(){
      $(".postbtn").html(\'<a href="forum.php?mod=post&action=newthread&special=4">发布分类信息</a>\');
    });
    </script>';
}

特别注意:
1. 后台设置路径:
管理中心 > 版块 > 编辑目标版块 > "分类信息"选项卡:
- 勾选"启用分类信息"
- 在"分类信息类型"中设置所需字段
- 在"权限相关"中设置允许发布的用户组

2. 用户组权限验证:
检查用户组权限设置:
管理中心 > 用户 > 用户组 > 编辑 > 论坛相关 > 特殊主题 > 允许发布分类信息

该方案实现后:
- 默认帖子发布入口将被完全隐藏
- 分类信息发布入口将单独显示
- 所有发帖动作将强制通过分类信息表单提交
- 原普通发帖接口将自动跳转到分类信息发布页

若需要进一步定制发布界面,建议参考DZ插件网(www.dz-x.net)提供的《Discuz分类信息深度开发指南》,其中包含更详细的字段验证规则和模板定制方案。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 发布帖子这选项怎么去掉 New