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

问各位开发者一个问题:有没有钩子可以对贴子展示时的处理? New

154 2

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

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

×
背景:我的ckeditor排版完后为html代码,图片代码也是<img src='abc.jpg'>这种,不是这种BBCODE
结果:这就导致一个问题:贴子展示给用户的时候,发现贴子对应数据有图片,但内容没有引用,于是会在贴子底部展示出来。 给人一种错觉:上传了两次图片。

注:默认编辑器也是这样的,只要贴子对应数据有图片,贴子内容没有引用图片,就会在贴子底部自动展示出来:如图显示的代码:

问各位开发者一个问题:有没有钩子可以对贴子展示时的处理?
New
 排版,图片,贴子,赐教,编辑器



尝试了好多方法,都无法很好的解决此问题。在此,向各位开发者大佬咨询良方,望赐教。







我知道答案 回答被采纳将会获得1 贡献 已有1人回答
我要说一句 收起回复

评论2

TyCodingLv.8 发表于 2024-1-31 23:11:31 | 查看全部
简单点的办法可以考虑用js判断附件列表的src内容在正文区域已经存在的时候就移除附件列表内对应的区域。
效果要好一点的话,最好还是在输出html以前用PHP来判断,可以在解析正文html部分的php代码,先获取到图片附件的id,然后对正文下方附件列表部分用这些id来判断。
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-20 00:57:53 | 查看全部
在Discuz!中,确实存在一些钩子(hooks)可以在帖子展示时进行处理。针对你的问题,可以通过以下步骤来解决:

1. **使用`viewthread_post_attachment`钩子**:
   这个钩子在帖子内容展示时触发,可以用来处理帖子中的附件(包括图片)。你可以在这个钩子中检查帖子内容中是否引用了图片,如果没有引用,则可以选择不展示这些图片。

2. **自定义处理逻辑**:
   你可以在插件中注册这个钩子,并在钩子函数中编写自定义逻辑。具体来说,你可以通过正则表达式或其他方式检查帖子内容中是否包含图片的引用,如果没有,则可以通过修改`$post['attachments']`数组来移除未引用的图片。

3. **示例代码**:
   以下是一个简单的示例代码,展示如何在插件中使用`viewthread_post_attachment`钩子来处理未引用的图片:

  
  1. // 在插件中注册钩子
  2.    function myplugin_viewthread_post_attachment($post) {
  3.        global $_G;

  4.        // 获取帖子内容
  5.        $message = $post['message'];

  6.        // 检查帖子内容中是否包含图片引用
  7.        foreach ($post['attachments'] as $key => $attachment) {
  8.            if (strpos($message, $attachment['url']) === false) {
  9.                // 如果帖子内容中没有引用该图片,则移除该附件
  10.                unset($post['attachments'][$key]);
  11.            }
  12.        }

  13.        return $post;
  14.    }

  15.    // 注册钩子
  16.    $plugins['viewthread_post_attachment'][] = array(
  17.        'pluginid' => 'myplugin',
  18.        'include' => 'source/plugin/myplugin/myplugin.class.php',
  19.        'class' => 'myplugin',
  20.        'method' => 'viewthread_post_attachment'
  21.    );
复制代码


4. **注意事项**:
   - 确保你的插件已经正确安装并启用了钩子。
   - 在处理图片引用时,可能需要考虑不同的图片URL格式(如相对路径、绝对路径等)。
   - 如果你使用的是CKEditor,可能需要确保编辑器生成的HTML代码与Discuz!的附件系统兼容。

通过以上方法,你可以有效地解决帖子展示时未引用图片自动展示的问题。如果你有更多具体需求或遇到其他问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:18.226.251.94,GMT+8, 2025-4-5 23:10 , Processed in 0.263381 second(s), 83 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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