Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] discuz X2 帖子编辑后,图片附件不显示的解决办法

[复制链接]
superliujie 发表于 2011-11-1 11:14:48 | 显示全部楼层 |阅读模式
本帖最后由 superliujie 于 2011-11-1 11:16 编辑

说明:此方法不是我原创,只是我有此问题,在网上查到,本地测试成功,分享给大家。(注意:修改程序前,先备份原程序文件。)

地址:http://hi.baidu.com/1downs/blog/item/2635da8b6a4c2acffc1f105a.html

内容:20111010的补丁包中\function_post.php文件中的如下这段代码会导致编辑帖子更新其中一个附件后,导致该帖的其他附件不能使用,请官方予以修复。

临时方案:该文件的该部分恢复老版本即可


  1. if($attachupdate) {
  2. $query = DB::query("SELECT pid, aid, attachment, thumb, remote FROM ".DB::table(getattachtablebytid($tid))." WHERE aid IN (".dimplode(array_keys($attachupdate)).")");
  3. while($attach = DB::fetch($query)) {
  4. if($attach['pid'] == $pid) {
  5. dunlink($attach);
  6. }
  7. }
  8. $uaids = dimplode($attachupdate);
  9. $query = DB::query("SELECT aid, width, filename, filesize, attachment, isimage, thumb, remote FROM ".DB::table('forum_attachment_unused')." WHERE aid IN ($uaids)$uidadd");
  10. DB::query("DELETE FROM ".DB::table('forum_attachment_unused')." WHERE aid IN ($uaids)$uidadd");
  11. $attachupdate = array_flip($attachupdate);
  12. while($attach = DB::fetch($query)) {
  13. $update = $attach;
  14. $update['dateline'] = TIMESTAMP;
  15. $update['remote'] = 0;
  16. unset($update['aid']);
  17. if($attach['isimage'] && $_G['setting']['watermarkstatus'] && empty($_G['forum']['disablewatermark'])) {
  18. $image->Watermark($_G['setting']['attachdir'].'/forum/'.$attach['attachment'], '', 'forum');
  19. $update['filesize'] = $image->imginfo['size'];
  20. }
  21. DB::update(getattachtablebytid($tid), $update, "aid='".$attachupdate[$attach['aid']]."'");
  22. ftpupload(array($attachupdate[$attach['aid']]), $uid);
  23. }
  24. }

复制代码

------------------------------------要解决可以修改为:-------------------------------------------------

  1. if($attachupdate) {
  2. $query = DB::query("SELECT pid, aid, attachment, thumb, remote FROM ".DB::table(getattachtablebytid($tid))." WHERE aid IN (".dimplode(array_keys($attachupdate)).")");
  3. while($attach = DB::fetch($query)) {
  4. if(array_key_exists($attach['aid'], $attachupdate) && $attachupdate[$attach['aid']]) {
  5. dunlink($attach);
  6. }
  7. }
  8. $uaids = dimplode($attachupdate);
  9. $query = DB::query("SELECT aid, width, filename, filesize, attachment, isimage, thumb, remote FROM ".DB::table('forum_attachment_unused')." WHERE aid IN ($uaids)$uidadd");
  10. DB::query("DELETE FROM ".DB::table('forum_attachment_unused')." WHERE aid IN ($uaids)$uidadd");
  11. $attachupdate = array_flip($attachupdate);
  12. while($attach = DB::fetch($query)) {
  13. $update = $attach;
  14. $update['dateline'] = TIMESTAMP;
  15. $update['remote'] = 0;
  16. unset($update['aid']);
  17. if($attach['isimage'] && $_G['setting']['watermarkstatus'] && empty($_G['forum']['disablewatermark'])) {
  18. $image->Watermark($_G['setting']['attachdir'].'/forum/'.$attach['attachment'], '', 'forum');
  19. $update['filesize'] = $image->imginfo['size'];
  20. }
  21. DB::update(getattachtablebytid($tid), $update, "aid='".$attachupdate[$attach['aid']]."'");
  22. ftpupload(array($attachupdate[$attach['aid']]), $uid);
  23. }
  24. }

复制代码


 楼主| superliujie 发表于 2011-11-1 11:16:52 | 显示全部楼层
一楼我自己的!
回复

使用道具 举报

xntt 发表于 2011-11-1 11:25:47 | 显示全部楼层
呵呵,谢谢
回复

使用道具 举报

不要一直颓废 发表于 2011-11-1 11:38:16 | 显示全部楼层
前排看看  学习一下www.tfzhij.com
回复

使用道具 举报

初级程序员 发表于 2011-12-2 10:49:05 | 显示全部楼层
不管用,测试无效
回复

使用道具 举报

woniu778 发表于 2011-12-2 15:06:48 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

lvzhuzhi 发表于 2011-12-2 15:23:05 | 显示全部楼层
看完贴子的朋友请回帖顶一下,别让它沉下去了,以便给需要的人分享呵
回复

使用道具 举报

81336388 发表于 2011-12-2 15:29:06 | 显示全部楼层
今天天气不太好,好热的 http://www.c9c9gua.com
回复

使用道具 举报

aiqiqi 发表于 2011-12-2 17:36:43 | 显示全部楼层
多看看有好处
回复

使用道具 举报

huse 发表于 2011-12-2 19:09:44 | 显示全部楼层
也来做做看哦,谢谢提供
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 10:16 , Processed in 0.035525 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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