PageRenderTime 27ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/jiaju001/bbs/admin/attachments.inc.php

https://gitlab.com/BGCX262/zyyhong-svn-to-git
PHP | 218 lines | 177 code | 35 blank | 6 comment | 25 complexity | 931c14c71295c634d5e09a2e26c180d7 MD5 | raw file
  1. <?php
  2. /*
  3. [Discuz!] (C)2001-2007 Comsenz Inc.
  4. This is NOT a freeware, use is subject to license terms
  5. $Id: attachments.inc.php 9769 2007-08-14 02:08:43Z cnteacher $
  6. */
  7. if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
  8. exit('Access Denied');
  9. }
  10. cpheader();
  11. if(!submitcheck('deletesubmit') && !submitcheck('searchsubmit')) {
  12. require_once DISCUZ_ROOT.'./include/forum.func.php';
  13. shownav('menu_maint_attaches');
  14. ?>
  15. <form method="post" action="admincp.php?action=attachments">
  16. <input type="hidden" name="formhash" value="<?=FORMHASH?>">
  17. <table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
  18. <tr class="header"><td colspan="2"><?=$lang['menu_maint_attaches']?></td></tr>
  19. <tr><td class="altbg1"><?=$lang['attachments_nomatched']?></td>
  20. <td class="altbg2" align="right"><input class="checkbox" type="checkbox" name="nomatched" value="1"></td></tr>
  21. <tr><td class="altbg1"><?=$lang['attachments_forum']?></td>
  22. <td class="altbg2" align="right"><select name="inforum"><option value="all">&nbsp;&nbsp;> <?=$lang['all']?></option>
  23. <option value="">&nbsp;</option><?=forumselect()?></select></td></tr>
  24. <tr><td class="altbg1"><?=$lang['attachments_sizeless']?></td>
  25. <td class="altbg2" align="right"><input type="text" name="sizeless" size="40"></td></tr>
  26. <tr><td class="altbg1"><?=$lang['attachments_sizemore']?></td>
  27. <td class="altbg2" align="right"><input type="text" name="sizemore" size="40"></td></tr>
  28. <tr><td class="altbg1"><?=$lang['attachments_dlcountless']?></td>
  29. <td class="altbg2" align="right"><input type="text" name="dlcountless" size="40"></td></tr>
  30. <tr><td class="altbg1"><?=$lang['attachments_dlcountmore']?></td>
  31. <td class="altbg2" align="right"><input type="text" name="dlcountmore" size="40"></td></tr>
  32. <tr><td class="altbg1"><?=$lang['attachments_daysold']?></td>
  33. <td class="altbg2" align="right"><input type="text" name="daysold" size="40"></td></tr>
  34. <tr><td class="altbg1"><?=$lang['attachments_filename']?></td>
  35. <td class="altbg2" align="right"><input type="text" name="filename" size="40"></td></tr>
  36. <tr><td class="altbg1"><?=$lang['attachments_keyword']?></td>
  37. <td class="altbg2" align="right"><input type="text" name="keywords" size="40"></td></tr>
  38. <tr><td class="altbg1"><?=$lang['attachments_author']?></td>
  39. <td class="altbg2" align="right"><input type="text" name="author" size="40"></td></tr>
  40. </table><br /><center>
  41. <input class="button" type="submit" name="searchsubmit" value="<?=$lang['submit']?>"></center>
  42. </form>
  43. <?
  44. } elseif(submitcheck('searchsubmit')) {
  45. require_once DISCUZ_ROOT.'./include/attachment.func.php';
  46. $sql = "a.pid=p.pid";
  47. if($inforum != 'all') {
  48. if($inforum) {
  49. $sql .= " AND p.fid='$inforum'";
  50. } else {
  51. cpmsg('attachments_forum_invalid');
  52. }
  53. }
  54. if($daysold) {
  55. $sql .= " AND p.dateline<='".($timestamp - (86400 * $daysold))."'";
  56. }
  57. if($author) {
  58. $sql .= " AND p.author='$author'";
  59. }
  60. if($filename) {
  61. $sql .= " AND a.filename LIKE '%$filename%'";
  62. }
  63. if($keywords) {
  64. $sqlkeywords = $or = '';
  65. foreach(explode(',', str_replace(' ', '', $keywords)) as $keyword) {
  66. $sqlkeywords .= " $or a.description LIKE '%$keyword%'";
  67. $or = 'OR';
  68. }
  69. $sql .= " AND ($sqlkeywords)";
  70. }
  71. if($sizeless) {
  72. $sql .= " AND a.filesize<'$sizeless'";
  73. }
  74. if($sizemore) {
  75. $sql .= " AND a.filesize>'$sizemore' ";
  76. }
  77. if($dlcountless) {
  78. $sql .= " AND a.downloads<'$dlcountless'";
  79. }
  80. if($dlcountmore) {
  81. $sql .= " AND a.downloads>'$dlcountmore'";
  82. }
  83. $attachments = '';
  84. $page = max(1, intval($page));
  85. $query = $db->query("SELECT a.*, p.fid, p.author, t.tid, t.tid, t.subject, f.name AS fname
  86. FROM {$tablepre}attachments a, {$tablepre}posts p, {$tablepre}threads t, {$tablepre}forums f
  87. WHERE t.tid=a.tid AND f.fid=p.fid AND t.displayorder>='0' AND p.invisible='0' AND $sql LIMIT ".(($page - 1) * $ppp).','.$ppp);
  88. while($attachment = $db->fetch_array($query)) {
  89. if(!$attachment['remote']) {
  90. $matched = file_exists($attachdir.'/'.$attachment['attachment']) ? '' : "$lang[attachments_lost]";
  91. $attachment['url'] = $attachurl;
  92. } else {
  93. @set_time_limit(0);
  94. if(@fclose(@fopen($ftp['attachurl'].'/'.$attachment['attachment'], 'r'))) {
  95. $matched = '';
  96. } else {
  97. $matched = $lang['attachments_far'];
  98. }
  99. $attachment['url'] = $ftp['attachurl'];
  100. }
  101. $attachsize = sizecount($attachment['filesize']);
  102. if(!$nomatched || ($nomatched && $matched)) {
  103. $attachments .= "<tr><td class=\"altbg1\" align=\"center\" valign=\"middle\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[]\" value=\"$attachment[aid]\"></td>\n".
  104. "<td class=\"altbg2\" align=\"center\"><b>$attachment[filename]</b><br />$attachment[description]</td>\n".
  105. "<td class=\"altbg1\" align=\"center\"><b>".($matched ? $matched : "<a href=\"attachment.php?aid=$attachment[aid]\" target=\"_blank\">[$lang[attachments_download]]</a>")."</b><br /><a href=\"$attachment[url]/$attachment[attachment]\" class=\"smalltxt\" target=\"_blank\">".cutstr($attachment['attachment'], 30)."</a></td>\n".
  106. "<td class=\"altbg2\" align=\"center\">$attachment[author]</td>\n".
  107. "<td class=\"altbg1\" valign=\"middle\"><a href=\"viewthread.php?tid=$attachment[tid]\" target=\"_blank\"><b>".cutstr($attachment['subject'], 20)."</b></a><br />$lang[forum]:<a href=\"forumdisplay.php?fid=$attachment[fid]\" target=\"_blank\">$attachment[fname]</a></td>\n".
  108. "<td class=\"altbg2\" valign=\"middle\" align=\"center\">$attachsize</td>\n".
  109. "<td class=\"altbg1\" valign=\"middle\" align=\"center\">$attachment[downloads]</td></tr>\n";
  110. }
  111. }
  112. $attachmentcount = $db->result($db->query("SELECT count(*) FROM {$tablepre}attachments a, {$tablepre}posts p, {$tablepre}threads t, {$tablepre}forums f
  113. WHERE t.tid=a.tid AND f.fid=p.fid AND t.displayorder>='0' AND p.invisible='0' AND $sql"), 0);
  114. $multi = multi($attachmentcount, $ppp, $page, "admincp.php?action=attachments");
  115. $multi = preg_replace("/href=\"admincp.php\?action=attachments&amp;page=(\d+)\"/", "href=\"javascript:page(\\1)\"", $multi);
  116. $multi = str_replace("window.location='admincp.php?action=attachments&amp;page='+this.value", "page(this.value)", $multi);
  117. shownav('menu_maint_attaches');
  118. ?>
  119. <script type="text/javascript">
  120. function page(number) {
  121. $('attachmentforum').page.value=number;
  122. $('attachmentforum').searchsubmit.click();
  123. }
  124. </script>
  125. <form id="attachmentforum" method="post" action="admincp.php?action=attachments" style="display:none">
  126. <input type="hidden" name="formhash" value="<?=FORMHASH?>">
  127. <input type="hidden" name="page" value="<?=$page?>">
  128. <input type="hidden" name="nomatched" value="<?=$nomatched?>">
  129. <input type="hidden" name="inforum" value="<?=$inforum?>">
  130. <input type="hidden" name="sizeless" value="<?=dhtmlspecialchars($sizeless)?>">
  131. <input type="hidden" name="sizemore" value="<?=dhtmlspecialchars($sizemore)?>">
  132. <input type="hidden" name="dlcountless" value="<?=dhtmlspecialchars($dlcountless)?>">
  133. <input type="hidden" name="dlcountmore" value="<?=dhtmlspecialchars($dlcountmore)?>">
  134. <input type="hidden" name="daysold" value="<?=dhtmlspecialchars($daysold)?>">
  135. <input type="hidden" name="filename" value="<?=dhtmlspecialchars($filename)?>">
  136. <input type="hidden" name="keywords" value="<?=dhtmlspecialchars($keywords)?>">
  137. <input type="hidden" name="author" value="<?=dhtmlspecialchars($author)?>">
  138. <input class="button" type="submit" name="searchsubmit">
  139. </form>
  140. <form method="post" action="admincp.php?action=attachments" target="attachmentframe">
  141. <input type="hidden" name="formhash" value="<?=FORMHASH?>">
  142. <?=$multi?>
  143. <table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
  144. <tr class="header"><td width="5%"><input class="checkbox" type="checkbox" name="chkall" onclick="checkall(this.form)"><?=$lang['del']?></td>
  145. <td width="15%" align="center"><?=$lang['attachments_name']?></td>
  146. <td width="27%" align="center"><?=$lang['filename']?></td>
  147. <td width="15%" align="center"><?=$lang['author']?></td>
  148. <td width="17%" align="center"><?=$lang['attachments_thread']?></td>
  149. <td width="13%" align="center"><?=$lang['size']?></td>
  150. <td width="13%" align="center"><?=$lang['download']?></td></tr>
  151. <?=$attachments?>
  152. </table>
  153. <?=$multi?>
  154. <center><input class="button" type="submit" name="deletesubmit" value="<?=$lang['submit']?>"></center></form><iframe name="attachmentframe" style="display:none"></iframe>
  155. <?
  156. } elseif(submitcheck('deletesubmit')) {
  157. if(is_array($delete)) {
  158. $ids = '\''.implode('\',\'', $delete).'\'';
  159. $tids = $pids = 0;
  160. $query = $db->query("SELECT tid, pid, attachment, thumb, remote FROM {$tablepre}attachments WHERE aid IN ($ids)");
  161. while($attach = $db->fetch_array($query)) {
  162. dunlink($attach['attachment'], $attach['thumb'], $attach['remote']);
  163. $tids .= ','.$attach['tid'];
  164. $pids .= ','.$attach['pid'];
  165. }
  166. $db->query("DELETE FROM {$tablepre}attachments WHERE aid IN ($ids)");
  167. $db->query("UPDATE {$tablepre}posts SET attachment='0' WHERE pid IN ($pids)");
  168. $attachtids = 0;
  169. $query = $db->query("SELECT tid FROM {$tablepre}attachments WHERE tid IN ($tids) GROUP BY tid ORDER BY pid DESC");
  170. while($attach = $db->fetch_array($query)) {
  171. $attachtids .= ','.$attach['tid'];
  172. }
  173. $db->query("UPDATE {$tablepre}threads SET attachment='' WHERE tid IN ($tids)".($attachtids ? " AND tid NOT IN ($attachtids)" : NULL));
  174. eval("\$cpmsg = \"".$msglang['attachments_edit_succeed']."\";");
  175. } else {
  176. eval("\$cpmsg = \"".$msglang['attachments_edit_invalid']."\";");
  177. }
  178. ?>
  179. <script>alert('<?=$cpmsg?>');parent.$('attachmentforum').searchsubmit.click();</script>
  180. <?
  181. }
  182. ?>