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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] 解决supesite待审箱内文章附件无法编辑的bug

[复制链接]
husan 发表于 2010-12-13 12:36:42 | 显示全部楼层 |阅读模式
本帖最后由 husan 于 2010-12-13 12:49 编辑

今天介绍一下解决supesite待审箱内文章附件无法编辑bug的方法,希望能够对各位有所帮助  PS:只支持7.5的原版程序
1.修改根目录/admin /admin_spacenews.php文件
查找
  1. //UPLOAD
  2. $thevalue['uploadarr'] = array();
  3. if(!empty($thevalue['haveattach'])) {
  4.     $query = $_SGLOBAL['db']->query('SELECT * FROM '.tname('attachments').' WHERE itemid=\''.$itemid.'\'  ORDER BY dateline');
复制代码
替换为
  1. //UPLOAD
  2. $thevalue['uploadarr'] = array();
  3. if(!empty($thevalue['haveattach'])) {
  4.     $query = $_SGLOBAL['db']->query('SELECT * FROM '.tname('attachments').' WHERE itemid=\''.$itemid.'\' and hash=\''.$thevalue['hash'].'\' ORDER BY dateline');
复制代码
查找
  1. $query = $_SGLOBAL['db']->query('SELECT ii.*, i.* FROM '.tname('postitems').' ii LEFT JOIN '.tname('postmessages').' i ON i.itemid=ii.itemid WHERE ii.itemid=\''.$itemid.'\'');
  2. $thevalue = $_SGLOBAL['db']->fetch_array($query);
  3. $page = 1;

  4. $spacetag_itemid    =    empty($thevalue['oitemid']) ? $itemid : $thevalue['oitemid'];
  5. $thevalue['tagname'] = gettagname($spacetag_itemid, '0');    //TAG
复制代码
在之后添加
  1. if(!empty($thevalue['haveattach'])) {
  2.     $query = $_SGLOBAL['db']->query('SELECT * FROM '.tname('attachments').' WHERE itemid=\''.$itemid.'\' and hash=\''.$thevalue['hash'].'\' ORDER BY dateline');
  3.     while ($attach = $_SGLOBAL['db']->fetch_array($query)) {
  4.     $thevalue['uploadarr'][] = $attach;
  5.     }
  6.     if(empty($thevalue['uploadarr'])) {
  7.     $setsqlarr = array('haveattach' => 0);
  8.     $wheresqlarr = array('itemid' => $itemid);
  9.     updatetable('spaceitems', $setsqlarr, $wheresqlarr);
  10.     }
  11. }
复制代码
2.修改根目录/viewnews.php
查找
  1. $query = $_SGLOBAL['db']->query('SELECT * FROM '.tname('attachments').' WHERE itemid=\''.$itemid.'\'');
复制代码
替换为
  1. $query = $_SGLOBAL['db']->query('SELECT * FROM '.tname('attachments').' WHERE itemid=\''.$itemid.'\' and hash=\''.$news['hash'].'\'');
复制代码
ok,测试一下吧





评分

1

查看全部评分

 楼主| husan 发表于 2010-12-13 12:39:36 | 显示全部楼层

解决supesite审批文章丢失附件的bug

本帖最后由 husan 于 2010-12-13 12:41 编辑

今天给大家介绍一下解决supesite审批文章丢失附件bug的方法,希望能够对各位有所帮助

bug出现的条件:

设置一个用户组可以进入后台发文章但是需要审核,如果待审的文章中包含附件,那么审核后的咨询附件丢失

解决方法:

1,先解决supesite待审箱内文章附件无法编辑的bug

2,修改根目录/function/common.func.php文件

查找第2416行
  1. inserttable('postmessages', saddslashes($itemmsg));
  2. deletetable('spaceitems', array('itemid'=>$value['itemid']));
  3. deletetable('spacenews', array('itemid'=>$value['itemid']));
复制代码
在之前添加
  1. $_SGLOBAL['db']->query('UPDATE '.tname('attachments').' SET itemid='.$itemmsg['itemid'].' WHERE itemid = \''.$value['itemid'].'\' and hash=\''.$value['hash'].'\'');
复制代码
查找第2464行
  1. empty($value['oitemid']) ? updatespacetagspass($value['itemid'], '1', '1', $itemmsg['itemid']) : updatespacetagspass($value['oitemid'], '1');
复制代码
在之后添加
  1. $_SGLOBAL['db']->query('UPDATE '.tname('attachments').' SET itemid='.$itemmsg['itemid'].' WHERE itemid = \''.$value['itemid'].'\' and hash=\''.$value['hash'].'\'');
复制代码
ok,各位测试一下吧


回复

使用道具 举报

 楼主| husan 发表于 2010-12-13 12:47:06 | 显示全部楼层

增加supesite投稿时可以上传附件的功能

本帖最后由 husan 于 2010-12-13 12:52 编辑

今天给大家介绍一下增加supesite投稿时可以上传附件功能的方法,

建议修改前请先修改《解决supesite审批文章丢失附件的bug

1.修改根目录/source/cp_news.php文件

查找
  1. $itemarr = array('message' => $_POST['message'],
  2.         'relativetags' => addslashes(serialize($tagnamearr)),            //相关TAG
  3.          'newsfrom' => $_POST['newsfrom'],
  4.          'newsauthor' => $_POST['newsauthor'],
  5.          'newsfromurl' => $_POST['newsfromurl'],
  6.          'postip' => $_SGLOBAL['onlineip'],
  7.          'includetags' => postgetincludetags($_POST['message'], $tagnamearr)
  8.         );
复制代码
在下面添加
  1. $newsarr['hash'] = trim($_POST['hash']);
  2. //附件
  3. if(!empty($_POST['divupload']) && is_array($_POST['divupload'])) {
  4.     $newsarr['haveattach'] = 1;
  5. } else {
  6.     $newsarr['haveattach'] = 0;
  7. }
复制代码
查找
  1. //更新用户最新更新时间
  2. if($_SGLOBAL['supe_uid']) {
  3.     updatetable('members', array('updatetime'=>$_SGLOBAL['timestamp'], 'lastposttime'=>$_SGLOBAL['timestamp']), array('uid'=>$_SGLOBAL['supe_uid']));   
  4. }
复制代码
在下面添加
  1. //附件
  2. if($newsarr['haveattach']) {
  3.     $_SGLOBAL['db']->query('UPDATE '.tname('attachments').' SET isavailable=1, type=\''.$_POST['type'].'\', itemid='.$itemarr['itemid'].', catid=\''.$_POST['catid'].'\' WHERE hash=\''.$_POST['hash'].'\'');
  4. }
复制代码
查找
  1. } elseif($op == 'edit') {
复制代码
在上面添加
  1. $hashstr = smd5($_SGLOBAL['supe_uid'].'/'.$_SGLOBAL['timestamp'].random(6));
复制代码
查找
  1. $item['subject'] = shtmlspecialchars($item['subject']);
  2. $item['message'] = jsstrip($item['message']);
复制代码
在下面添加
  1. if(!empty($item['haveattach'])) {
  2.                 $query = $_SGLOBAL['db']->query('SELECT * FROM '.tname('attachments').' WHERE itemid=\''.$itemid.'\' ORDER BY dateline');
  3.                 while ($attach = $_SGLOBAL['db']->fetch_array($query)) {
  4.                     $item['uploadarr'][] = $attach;
  5.                 }
  6.     }
  7.     $count = count($item['uploadarr']);
  8.     if(empty($item['noinsert'])) {
  9.         $item['noinsert'] = 0;
  10.         $inserthtml = getuploadinserthtml($item['uploadarr']);
  11.     } else {
  12.         $inserthtml = getuploadinserthtml($item['uploadarr'], 1);
  13.     }
复制代码
2.修改根目录/tempalte/default/cp_news.html.php文件

查找
  1. <table width="100%" class="globalbox_border">
  2.     <tbody>
  3.         <tr>
  4.             <td width="100" align="right">获取远程资讯:</td>
复制代码
在下面添加
  1. <input name="subjectpic" id="subjectpic" type="hidden" value="" />
  2. <table cellspacing="0" cellpadding="0" width="100%"  class="maintable">
  3.     <tr id="tr_upload">
  4.         <td width="100" align="right" valign="top">内容附件:</td>
  5.         <td>
  6.             <div id="uploadbox">
  7.             <div class="tabs">
  8.                 <a id="localuploadtab" href="javascript:;" onclick="hideshowtags('uploadbox', 'localupload');" class="current">本地上传</a>
  9.                 <a id="remoteuploadtab" href="javascript:;" onclick="hideshowtags('uploadbox', 'remoteupload');">远程上传</a>
  10.                 <a id="batchuploadtab" href="javascript:;" onclick="hideshowtags('uploadbox', 'batchupload');">批量上传</a>
  11.             </div>
  12.             <div id="localupload">
  13.                 <table cellpadding="0" cellspacing="0">
  14.                     <tr>
  15.                         <th>选择文件:</th>
  16.                         <td><input name="localfile" type="file" id="localfile" size="28" /></td>
  17.                         <td valign="bottom" rowspan="2" class="upbtntd"><button onclick="return uploadFile(0)">上传</button></td>
  18.                     </tr>
  19.                     <tr>
  20.                         <th>上传说明:</th>
  21.                         <td><input name="uploadsubject0" type="text" size="40" /></td>
  22.                     </tr>
  23.                 </table>
  24.             </div>
  25.             <div id="remoteupload" style="display: none;">
  26.                 <table cellpadding="0" cellspacing="0">
  27.                     <tr>
  28.                         <th>输入网址:</th>
  29.                         <td><input type="text" size="40" name="remotefile" value="http://" /></td>
  30.                         <td valign="bottom" rowspan="2" class="upbtntd"><button onclick="return uploadFile(1)" />上传</button></td>
  31.                     </tr>
  32.                     <tr>
  33.                         <th>上传说明:</th>
  34.                         <td><input name="uploadsubject1" type="text" size="40" /></td>
  35.                     </tr>
  36.                 </table>
  37.             </div>
  38.             <div id="batchupload" style="display: none;">
  39.                 <table summary="" cellpadding="0" cellspacing="6" border="0" width="100%">
  40.                     <tr>
  41.                         <td><span id="batchdisplay"><input size="28" class="fileinput" id="batch_1" name="batchfile[]" onchange="insertimg(this)" type="file" /></span></td>
  42.                         <td class="upbtntd">
  43.                         <button id="doupfile" onclick="return uploadFile(2)">上传</button>
  44.                         </td>
  45.                     <tr>
  46.                         <td colspan="2">
  47.                         <div id="batchpreview"></div>
  48.                         </td>
  49.                     </tr>
  50.                     <tr>
  51.                         <td colspan="2">
  52.                         <button id="delall" name="delall" onclick="return delpic()" style="background: transparent; border: none; cursor: pointer; color: red; " >全部清空</button>
  53.                         </td>
  54.                     </tr>
  55.                 </table>
  56.             </div>

  57.             <p class="textmsg" id="divshowuploadmsg" style="display:none"></p>
  58.             <p class="textmsg succ" id="divshowuploadmsgok" style="display:none"></p>
  59.             <input type="hidden" id="uploadallowmax" name="uploadallowmax" value="100">
  60.             <input type="hidden" name="uploadallowtype" value="$thevalue[allowtype]">
  61.             <input type="hidden" name="thumbwidth" value="$_SCONFIG[thumbarray][news][0]">
  62.             <input type="hidden" name="thumbheight" value="$_SCONFIG[thumbarray][news][1]">
  63.             <input type="hidden" name="noinsert" value="$thevalue['noinsert']">
  64.             <input name="hash" type="hidden" value="$hashstr" />
  65.             </div>
  66.             <div id="divshowupload">$inserthtml</div>
  67.         </td>
  68.     </tr>
  69. </table>
复制代码
3.经网友提示,幻灯图没有显示,新增修复方法

修改根目录/source/cp_news.php文件

查找
  1. $_POST['type'] = shtmlspecialchars(trim($_POST['type']));
复制代码
在下面添加
  1. $_POST['picid'] = empty($_POST['picid'])?0:intval($_POST['picid']);    //图文资讯标志
复制代码
查找
  1. 'type' => $_POST['type'],
复制代码
在下面添加
  1. 'picid' => $_POST['picid'],
复制代码
修改templates/default/css/common.css文件

在下面添加
  1. /* 后台附件选项卡 */
  2. #uploadbox { width: 500px; }
  3. #uploadbox table { border: 1px solid #CCC; border-top: none; background:#FCFFEF; width: 100%; }
  4.         #uploadbox th { background: transparent; width: 60px; }
  5.         .upbtntd button { padding: 5px 20px 2px 20px; background: #C3D9FF; border-color: #86B9D6; border-style: solid; border-width: 1px 1px 3px; cursor: pointer; color: #6774A8; font-weight: bold; }

  6. #uploadbox .tabs { height:27px; border-bottom: 1px solid #CCC; padding-left: 5px; }
  7.         #uploadbox  .tabs a { float: left; padding: 0 5px; border: 1px solid #CCC;  margin-right: 5px; text-decoration: none; height: 26px; line-height: 26px; background: #FFF; }
  8.                 #uploadbox  .tabs a.current { font-weight: bold; cursor: default; border-bottom: 1px solid #FFF; background: #FCFFEF; }
  9.                         #uploadbox  .tabs a:hover { color: #333; background: #FCFFEF; }
  10. #batchpreview { background: #FFF; width: 473px; height: 300px; border: 1px solid #EEE; overflow: auto; }
  11.         .picspace { border-bottom: 1px solid #CCC; margin: 3px; }
  12.                 .picspace img { margin: 3px 6px 3px 0; border: 3px solid #EEE; max-width: 60px; max-height: 60px; width: expression(this.width > 60 ? 60: true);; height: expression(this.width > 40 ? 40: true);; }
  13. #batchupload td { padding:5px; }
复制代码



ok,修改完成,测试一下吧
回复

使用道具 举报

危险的蘑菇 发表于 2010-12-14 14:51:44 | 显示全部楼层
这文章看着真眼熟,是我写的不?
回复

使用道具 举报

 楼主| husan 发表于 2010-12-14 20:35:34 | 显示全部楼层
危险的蘑菇 发表于 2010-12-14 14:51
这文章看着真眼熟,是我写的不?

就是你写的,我怕找不到,就转到这里来了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 12:47 , Processed in 0.030706 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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