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

分类信息上传的图片添加添加水印而附件不添加水印

182 1

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

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

×
如题所述:

如何实现分类信息上传的图片添加水印(统一添加,直接绕过后台的水印是否设置开启)。附件图片不添加水印,这很好办到,直接关闭后台社区附件图片水印即可,但是实现分类信息图片添加水印比较困难。

根据网上找到的方法:
经过几天的代码分析,逐渐找到需要添加水印的地方,最终只添加了几行代码。

直接主题:
source/class/extend/extend_thread_sort.php
中为extend_thread_sort类,
在其方法public function after_newthread()中
if($_G['forum_optionlist'][$optionid]['type'] == 'image') {
$identifier = $_G['forum_optionlist'][$optionid]['identifier'];
$sortaids[] = intval($_GET['typeoption'][$identifier]['aid']);
require_once libfile('class/image');
$image = new image;
$imgoptiondata = dunserialize($value);

if($_G['setting']['watermarkstatus'] && empty($_G['forum']['disablewatermark'])) {
$image->Watermark($imgoptiondata['url'], '', 'forum');
$update['filesize'] = $image->imginfo['size'];}

红色即为添加的代码


分析过程比较曲折,由于前段时间已经对分类信息相对比较熟悉,知道disucz 中分类信息的整个解析过程,所以这次根据社区附件图片中添加水印的方法,一步一步的定位到需要添加水印的位置。
————————————————
版权声明:本文为CSDN博主「richerg85」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/richerg85/article/details/41543429

亲身体验后发现根本无法实现,我也直接去除水印开启判断,注释掉if($_G['setting']['watermarkstatus'] && empty($_G['forum']['disablewatermark'])) ,还是不能生效,有大佬知道是什么原因吗?
  1. if($_G['forum_optionlist'][$optionid]['type'] == 'image') {$identifier = $_G['forum_optionlist'][$optionid]['identifier'];$sortaids[] = intval($_GET['typeoption'][$identifier]['aid']);require_once libfile('class/image');$image = new image;$imgoptiondata = dunserialize($value);$image->Watermark($imgoptiondata['url'], '', 'forum');$update['filesize'] = $image->imginfo['size'];
复制代码



我要说一句 收起回复

评论1

Discuz智能体Lv.8 发表于 2025-3-18 00:08:19 | 查看全部
要实现分类信息上传的图片添加水印,而附件图片不添加水印,确实需要对Discuz的代码进行一些修改。你提到的代码修改思路是正确的,但可能在实际操作中存在一些问题。以下是一个更详细的解决方案,帮助你实现这个功能。

### 1. 修改 `source/class/extend/extend_thread_sort.php` 文件

你需要在 `extend_thread_sort` 类的 `after_newthread` 方法中添加水印处理的代码。以下是具体的代码修改步骤:

  1. public function after_newthread() {
  2.     global $_G;
  3.    
  4.     // 获取分类信息中的图片附件
  5.     if ($_G['group']['allowimgcontent']) {
  6.         $sortaids = intval($_GET['sortaids']);
  7.         if ($sortaids) {
  8.             $sortaids = explode(',', $sortaids);
  9.             foreach ($sortaids as $aid) {
  10.                 $attachment = C::t('forum_attachment')->fetch($aid);
  11.                 if ($attachment['isimage']) {
  12.                     // 加载图片处理类
  13.                     require_once libfile('class/image');
  14.                     $image = new image;
  15.                     
  16.                     // 反序列化图片信息
  17.                     $imgoptiondata = dunserialize($attachment['attachment']);
  18.                     
  19.                     // 添加水印
  20.                     $image->Watermark($imgoptiondata, '', 'forum');
  21.                     
  22.                     // 更新图片信息
  23.                     $update = $image->imginfo;
  24.                     C::t('forum_attachment')->update($aid, array('attachment' => serialize($update)));
  25.                 }
  26.             }
  27.         }
  28.     }
  29. }
复制代码


### 2. 确保水印功能在后台已开启

虽然你希望绕过后台的水印设置,但为了确保水印功能正常工作,建议你检查一下后台的水印设置是否已经开启。你可以在后台的 `全局 -> 上传设置 -> 图片水印设置` 中查看和配置水印。

### 3. 确保分类信息图片上传功能正常

确保分类信息的上传图片功能正常,并且图片能够成功上传到服务器。如果图片上传功能有问题,水印功能也无法正常工作。

### 4. 测试功能

完成代码修改后,上传一张图片到分类信息中,检查图片是否成功添加了水印。如果水印没有添加成功,可以检查以下几点:

- 确保 `source/class/extend/extend_thread_sort.php` 文件修改正确。
- 确保图片上传功能正常。
- 确保水印图片存在且路径正确。

### 5. 其他注意事项

- 如果你使用的是自定义模板,确保模板中没有对图片上传功能进行特殊处理。
- 如果你使用的是第三方插件,确保插件没有对图片上传功能进行覆盖或修改。

### 6. 代码调试

如果仍然无法实现水印功能,可以在代码中添加调试信息,检查每一步的执行情况。例如:

  1. print_r($attachment); // 打印附件信息
  2. print_r($imgoptiondata); // 打印图片信息
复制代码


通过调试信息,你可以更好地理解代码的执行流程,找到问题所在。

### 总结

通过以上步骤,你应该能够实现分类信息上传的图片添加水印,而附件图片不添加水印的功能。如果在实际操作中遇到问题,可以通过调试信息进一步排查问题。希望这个解决方案能够帮助你解决问题。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:18.117.132.49,GMT+8, 2025-4-5 00:33 , Processed in 0.377381 second(s), 72 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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