Просмотр файла mpanel/load.php

Размер файла: 50.38Kb
  1. <?php
  2. #-----------------------------------------------------#
  3. # ********* ROTORCMS ********* #
  4. # Made by : VANTUZ #
  5. # E-mail : visavi.net@mail.ru #
  6. # Site : http://pizdec.ru #
  7. # WAP-Site : http://visavi.net #
  8. # ICQ : 36-44-66 #
  9. # Вы не имеете право вносить изменения в код скрипта #
  10. # для его дальнейшего распространения #
  11. #-----------------------------------------------------#
  12. require_once ('../includes/start.php');
  13. require_once ('../includes/functions.php');
  14. require_once ('../includes/header.php');
  15. include_once ('../themes/' . $config['themes'] . '/index.php');
  16.  
  17. if (isset($_GET['act'])) {
  18. $act = check($_GET['act']);
  19. } else {
  20. $act = 'index';
  21. }
  22. if (isset($_GET['id'])) {
  23. $id = abs(intval($_GET['id']));
  24. } else {
  25. $id = 0;
  26. }
  27. if (isset($_GET['cid'])) {
  28. $cid = abs(intval($_GET['cid']));
  29. } else {
  30. $cid = 0;
  31. }
  32. if (isset($_GET['start'])) {
  33. $start = abs(intval($_GET['start']));
  34. } else {
  35. $start = 0;
  36. }
  37.  
  38. if (is_admin(array(101, 102))) {
  39. show_title('menu.png', 'Управление загрузками');
  40. $config['newtitle'] = 'Управление загрузками';
  41.  
  42. switch ($act):
  43. # ###########################################################################################
  44. # # Главная страница ##
  45. # ###########################################################################################
  46. case 'index':
  47.  
  48. $querydown = DB :: $dbh -> query("SELECT * FROM `cats` ORDER BY `cats_order` ASC;");
  49. $downs = $querydown -> fetchAll();
  50.  
  51. if (count($downs) > 0) {
  52. $output = array();
  53.  
  54. foreach ($downs as $row) {
  55. $id = $row['cats_id'];
  56. $fp = $row['cats_parent'];
  57. $output[$fp][$id] = $row;
  58. }
  59.  
  60. foreach($output[0] as $key => $data) {
  61. echo '<img src="../images/img/dir.gif" alt="image" /> ';
  62. echo '<b>' . $data['cats_order'] . '. <a href="load.php?act=down&amp;cid=' . $data['cats_id'] . '&amp;' . SID . '">' . $data['cats_name'] . '</a></b> (' . $data['cats_count'] . ')<br />';
  63.  
  64. if (is_admin(array(101))) {
  65. echo '<a href="load.php?act=editcats&amp;cid=' . $data['cats_id'] . '&amp;' . SID . '">Редактировать</a> / ';
  66. echo '<a href="load.php?act=prodelcats&amp;cid=' . $data['cats_id'] . '&amp;' . SID . '">Удалить</a><br />';
  67. }
  68. // ----------------------------------------------------//
  69. if (isset($output[$key])) {
  70. foreach($output[$key] as $datasub) {
  71. echo '<img src="../images/img/right.gif" alt="image" /> ';
  72. echo '<b>' . $datasub['cats_order'] . '. <a href="load.php?act=down&amp;cid=' . $datasub['cats_id'] . '&amp;' . SID . '">' . $datasub['cats_name'] . '</a></b> (' . $datasub['cats_count'] . ') ';
  73. if (is_admin(array(101))) {
  74. echo '(<a href="load.php?act=editcats&amp;cid=' . $datasub['cats_id'] . '&amp;' . SID . '">Редактировать</a> / ';
  75. echo '<a href="load.php?act=prodelcats&amp;cid=' . $datasub['cats_id'] . '&amp;' . SID . '">Удалить</a>)';
  76. }
  77. echo '<br />';
  78. }
  79. }
  80. }
  81. } else {
  82. show_error('Разделы загрузок еще не созданы!');
  83. }
  84.  
  85. if (is_admin(array(101))) {
  86. echo '<br /><div class="form">';
  87. echo '<form action="load.php?act=addcats&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '" method="post">';
  88. echo '<b>Заголовок:</b><br />';
  89. echo '<input type="text" name="name" maxlength="50" />';
  90. echo '<input type="submit" value="Создать раздел" /></form></div><br />';
  91.  
  92. echo '<img src="../images/img/reload.gif" alt="image" /> <a href="load.php?act=restatement&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '">Пересчитать</a><br />';
  93. }
  94.  
  95. echo '<img src="../images/img/open.gif" alt="image" /> <a href="load.php?act=newfile&amp;' . SID . '">Добавить</a><br />';
  96. break;
  97. # ###########################################################################################
  98. # # Добавление файла ##
  99. # ###########################################################################################
  100. case 'newfile':
  101. $config['newtitle'] = 'Публикация нового файла';
  102.  
  103. $querydown = DB :: $dbh -> query("SELECT `cats_id`, `cats_parent`, `cats_name` FROM `cats` ORDER BY `cats_order` ASC;");
  104. $downs = $querydown -> fetchAll();
  105.  
  106. if (count($downs) > 0) {
  107. echo '<div class="form">';
  108. echo '<form action="load.php?act=addfile&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '" method="post">';
  109. echo 'Категория*:<br />';
  110.  
  111. $output = array();
  112.  
  113. foreach ($downs as $row) {
  114. $i = $row['cats_id'];
  115. $p = $row['cats_parent'];
  116. $output[$p][$i] = $row;
  117. }
  118.  
  119. echo '<select name="cid">';
  120. echo '<option value="0">Выберите категорию</option>';
  121.  
  122. foreach ($output[0] as $key => $data) {
  123. $selected = ($cid == $data['cats_id']) ? ' selected="selected"' : '';
  124. echo '<option value="' . $data['cats_id'] . '"' . $selected . '>' . $data['cats_name'] . '</option>';
  125.  
  126. if (isset($output[$key])) {
  127. foreach($output[$key] as $datasub) {
  128. $selected = ($cid == $datasub['cats_id']) ? ' selected="selected"' : '';
  129. echo '<option value="' . $datasub['cats_id'] . '"' . $selected . '>– ' . $datasub['cats_name'] . '</option>';
  130. }
  131. }
  132. }
  133.  
  134. echo '</select><br />';
  135.  
  136. echo 'Название*:<br />';
  137. echo '<input type="text" name="title" size="50" maxlength="50" /><br />';
  138. echo 'Описание*:<br />';
  139. echo '<textarea cols="25" rows="10" name="text"></textarea><br />';
  140. echo 'Автор файла*:<br />';
  141. echo '<input type="text" name="author" maxlength="50" /><br />';
  142. echo 'Сайт автора:<br />';
  143. echo '<input type="text" name="site" maxlength="50" value="http://" /><br />';
  144.  
  145. echo '<input value="Продолжить" type="submit" /></form></div><br />';
  146.  
  147. echo 'Все поля отмеченные знаком *, обязательны для заполнения<br />';
  148. echo 'Файл и скриншот вы сможете загрузить после добавления описания<br />';
  149. echo 'Если вы ошиблись в названии или описании файла, вы всегда можете его отредактировать<br /><br />';
  150. } else {
  151. show_error('Категории файлов еще не созданы!');
  152. }
  153.  
  154. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?' . SID . '">Вернуться</a><br />';
  155. break;
  156. # ###########################################################################################
  157. # # Публикация файла ##
  158. # ###########################################################################################
  159. case 'addfile':
  160.  
  161. $config['newtitle'] = 'Публикация нового файла';
  162.  
  163. $uid = check($_GET['uid']);
  164. $cid = abs(intval($_POST['cid']));
  165. $title = check($_POST['title']);
  166. $text = check($_POST['text']);
  167. $author = check($_POST['author']);
  168. $site = check($_POST['site']);
  169. if ($site == 'http://') {
  170. $site = '';
  171. }
  172.  
  173. if ($uid == $_SESSION['token']) {
  174. if (!empty($cid)) {
  175. if (utf_strlen($title) >= 5 && utf_strlen($title) < 50) {
  176. if (utf_strlen($text) >= 10 && utf_strlen($text) < 5000) {
  177. if (utf_strlen($author) >= 3 && utf_strlen($author) < 50) {
  178. if (empty($site) || preg_match('#^http://([a-z0-9_\-\.])+(\.([a-z0-9\/])+)+$#', $site)) {
  179. $downs = DB :: $dbh -> querySingle("SELECT `cats_id` FROM `cats` WHERE `cats_id`=? LIMIT 1;", array($cid));
  180. if (!empty($downs)) {
  181. $downtitle = DB :: $dbh -> querySingle("SELECT `downs_title` FROM `downs` WHERE `downs_title`=? LIMIT 1;", array($title));
  182. if (empty($downtitle)) {
  183. $text = no_br($text);
  184.  
  185. DB :: $dbh -> query("UPDATE `cats` SET `cats_count`=`cats_count`+1 WHERE `cats_id`=?", array($cid));
  186. DB :: $dbh -> query("INSERT INTO `downs` (`downs_cats_id`, `downs_title`, `downs_text`, `downs_link`, `downs_user`, `downs_author`, `downs_site`, `downs_screen`, `downs_time`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);", array($cid, $title, $text, '', $log, $author, $site, '', SITETIME));
  187.  
  188. $lastid = DB :: $dbh -> lastInsertId();
  189.  
  190. $_SESSION['note'] = 'Данные успешно добавлены!';
  191. header ("Location: load.php?act=editdown&id=$lastid&" . SID);
  192. exit;
  193. } else {
  194. show_error('Ошибка! Название ' . $title . ' уже имеется в файлах!');
  195. }
  196. } else {
  197. show_error('Ошибка! Выбранный вами раздел не существует!');
  198. }
  199. } else {
  200. show_error('Ошибка! Недопустимый адрес сайта, необходим формат http://site.domen!');
  201. }
  202. } else {
  203. show_error('Ошибка! Слишком длинный или короткий ник (логин) автора (от 3 до 50 символов)!');
  204. }
  205. } else {
  206. show_error('Ошибка! Слишком длинный или короткий текст описания (от 10 до 5000 символов)!');
  207. }
  208. } else {
  209. show_error('Ошибка! Слишком длинное или короткое название (от 5 до 50 символов)!');
  210. }
  211. } else {
  212. show_error('Ошибка! Вы не выбрали категорию для добавления файла!');
  213. }
  214. } else {
  215. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  216. }
  217.  
  218. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?act=newfile&amp;cid=' . $cid . '&amp;' . SID . '">Вернуться</a><br />';
  219. break;
  220. # ###########################################################################################
  221. # # Пересчет счетчиков ##
  222. # ###########################################################################################
  223. case 'restatement':
  224.  
  225. $uid = check($_GET['uid']);
  226.  
  227. if (is_admin(array(101))) {
  228. if ($uid == $_SESSION['token']) {
  229. DB :: $dbh -> query("UPDATE `cats` SET `cats_count`=(SELECT count(*) FROM `downs` WHERE `cats`.`cats_id`=`downs`.`downs_cats_id`);");
  230. DB :: $dbh -> query("UPDATE `downs` SET `downs_comments`=(SELECT count(*) FROM `commload` WHERE `downs`.`downs_id`=`commload`.`commload_down`);");
  231.  
  232. $_SESSION['note'] = 'Все данные успешно пересчитаны!';
  233. header ("Location: load.php?" . SID);
  234. exit;
  235. } else {
  236. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  237. }
  238. } else {
  239. show_error('Ошибка! Пересчитывать сообщения могут только суперадмины!');
  240. }
  241.  
  242. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?' . SID . '">Вернуться</a><br />';
  243. break;
  244. # ###########################################################################################
  245. # # Добавление разделов ##
  246. # ###########################################################################################
  247. case 'addcats':
  248.  
  249. $uid = check($_GET['uid']);
  250. $name = check($_POST['name']);
  251.  
  252. if (is_admin(array(101))) {
  253. if ($uid == $_SESSION['token']) {
  254. if (utf_strlen($name) >= 4 && utf_strlen($name) < 50) {
  255. $maxorder = DB :: $dbh -> querySingle("SELECT IFNULL(MAX(`cats_order`),0)+1 FROM `cats`;");
  256. DB :: $dbh -> query("INSERT INTO `cats` (`cats_order`, `cats_name`) VALUES (?, ?);", array($maxorder, $name));
  257.  
  258. $_SESSION['note'] = 'Новый раздел успешно добавлен!';
  259. header ("Location: load.php?" . SID);
  260. exit;
  261. } else {
  262. show_error('Ошибка! Слишком длинное или короткое название раздела!');
  263. }
  264. } else {
  265. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  266. }
  267. } else {
  268. show_error('Ошибка! Добавлять разделы могут только суперадмины!');
  269. }
  270.  
  271. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?' . SID . '">Вернуться</a><br />';
  272. break;
  273. # ###########################################################################################
  274. # # Подготовка к редактированию разделов ##
  275. # ###########################################################################################
  276. case 'editcats':
  277.  
  278. if (is_admin(array(101))) {
  279. $querydown = DB :: $dbh -> query("SELECT * FROM `cats` WHERE `cats_id`=? LIMIT 1;", array($cid));
  280. $downs = $querydown -> fetch();
  281.  
  282. if (!empty($downs)) {
  283. echo '<b><big>Редактирование</big></b><br /><br />';
  284.  
  285. echo '<div class="form" id="form">';
  286. echo '<form action="load.php?act=addeditcats&amp;cid=' . $cid . '&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '" method="post">';
  287. echo 'Раздел: <br />';
  288. echo '<input type="text" name="name" maxlength="50" value="' . $downs['cats_name'] . '" /><br />';
  289.  
  290. $query = DB :: $dbh -> query("SELECT `cats_id`, `cats_name`, `cats_parent` FROM `cats` WHERE `cats_parent`=0 ORDER BY `cats_order` ASC;");
  291. $section = $query -> fetchAll();
  292.  
  293. echo 'Родительский раздел:<br />';
  294. echo '<select name="parent">';
  295. echo '<option value="0">Основной раздел</option>';
  296.  
  297. foreach ($section as $data) {
  298. if ($cid != $data['cats_id']) {
  299. $selected = ($downs['cats_parent'] == $data['cats_id']) ? ' selected="selected"' : '';
  300. echo '<option value="' . $data['cats_id'] . '"' . $selected . '>' . $data['cats_name'] . '</option>';
  301. }
  302. }
  303. echo '</select><br />';
  304.  
  305. echo 'Положение: <br />';
  306. echo '<input type="text" name="order" maxlength="2" value="' . $downs['cats_order'] . '" /><br /><br />';
  307.  
  308. echo '<input type="submit" value="Изменить" /></form></div><br />';
  309. } else {
  310. show_error('Ошибка! Данного раздела не существует!');
  311. }
  312. } else {
  313. show_error('Ошибка! Изменять разделы могут только суперадмины!');
  314. }
  315.  
  316. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?' . SID . '">Вернуться</a><br />';
  317. break;
  318. # ###########################################################################################
  319. # # Редактирование разделов ##
  320. # ###########################################################################################
  321. case 'addeditcats':
  322.  
  323. $uid = check($_GET['uid']);
  324. $name = check($_POST['name']);
  325. $parent = abs(intval($_POST['parent']));
  326. $order = abs(intval($_POST['order']));
  327.  
  328. if (is_admin(array(101))) {
  329. if ($uid == $_SESSION['token']) {
  330. if (utf_strlen($name) >= 4 && utf_strlen($name) < 50) {
  331. if ($cid != $parent) {
  332. $querydown = DB :: $dbh -> query("SELECT `cats_id` FROM `cats` WHERE `cats_parent`=? LIMIT 1;", array($cid));
  333. $downs = $querydown -> fetch();
  334.  
  335. if (empty($downs) || $parent == 0) {
  336. DB :: $dbh -> query("UPDATE `cats` SET `cats_order`=?, `cats_parent`=?, `cats_name`=? WHERE `cats_id`=?;", array($order, $parent, $name, $cid));
  337.  
  338. $_SESSION['note'] = 'Раздел успешно отредактирован!';
  339. header ("Location: load.php?" . SID);
  340. exit;
  341. } else {
  342. show_error('Ошибка! Данный раздел имеет подкатегории!');
  343. }
  344. } else {
  345. show_error('Ошибка! Недопустимый выбор родительского раздела!');
  346. }
  347. } else {
  348. show_error('Ошибка! Слишком длинное или короткое название раздела!');
  349. }
  350. } else {
  351. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  352. }
  353. } else {
  354. show_error('Ошибка! Изменять разделы могут только суперадмины!');
  355. }
  356.  
  357. echo '<img src="../images/img/reload.gif" alt="image" /> <a href="load.php?act=editcats&amp;cid=' . $cid . '&amp;' . SID . '">Вернуться</a><br />';
  358. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?' . SID . '">Категории</a><br />';
  359. break;
  360. # ###########################################################################################
  361. # # Подтвержение удаления ##
  362. # ###########################################################################################
  363. case 'prodelcats':
  364.  
  365. if (is_admin(array(101))) {
  366. $querydown = DB :: $dbh -> query("SELECT `c1`.*, count(`c2`.`cats_id`) AS `subcnt` FROM `cats` `c1` LEFT JOIN `cats` `c2` ON `c2`.`cats_parent` = `c1`.`cats_id` WHERE `c1`.`cats_id`=? GROUP BY `cats_id` LIMIT 1;", array($cid));
  367. $downs = $querydown -> fetch();
  368.  
  369. if (!empty($downs['cats_id'])) {
  370. if (empty($downs['subcnt'])) {
  371. echo 'Вы уверены что хотите удалить раздел <b>' . $downs['cats_name'] . '</b> в загрузках?<br />';
  372. echo '<img src="../images/img/error.gif" alt="image" /> <b><a href="load.php?act=delcats&amp;cid=' . $cid . '&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '">Да, уверен!</a></b><br /><br />';
  373. } else {
  374. show_error('Ошибка! Данный раздел имеет подкатегории!');
  375. }
  376. } else {
  377. show_error('Ошибка! Данного раздела не существует!');
  378. }
  379. } else {
  380. show_error('Ошибка! Удалять разделы могут только суперадмины!');
  381. }
  382.  
  383. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?' . SID . '">Вернуться</a><br />';
  384. break;
  385. # ###########################################################################################
  386. # # Удаление раздела ##
  387. # ###########################################################################################
  388. case 'delcats':
  389.  
  390. $uid = check($_GET['uid']);
  391.  
  392. if (is_admin(array(101)) && $log == $config['nickname']) {
  393. if ($uid == $_SESSION['token']) {
  394. $querydown = DB :: $dbh -> query("SELECT `c1`.*, count(`c2`.`cats_id`) AS `subcnt` FROM `cats` `c1` LEFT JOIN `cats` `c2` ON `c2`.`cats_parent` = `c1`.`cats_id` WHERE `c1`.`cats_id`=? GROUP BY `cats_id` LIMIT 1;", array($cid));
  395. $downs = $querydown -> fetch();
  396.  
  397. if (!empty($downs['cats_id'])) {
  398. if (empty($downs['subcnt'])) {
  399. if (is_writeable(BASEDIR . 'load/files')) {
  400. $querydel = DB :: $dbh -> query("SELECT `downs_link`, `downs_screen` FROM `downs` WHERE `downs_cats_id`=?;", array($cid));
  401. $arr_script = $querydel -> fetchAll();
  402.  
  403. DB :: $dbh -> query("DELETE FROM `commload` WHERE `commload_cats`=?;", array($cid));
  404. DB :: $dbh -> query("DELETE FROM `downs` WHERE `downs_cats_id`=?;", array($cid));
  405. DB :: $dbh -> query("DELETE FROM `cats` WHERE `cats_id`=?;", array($cid));
  406.  
  407. foreach ($arr_script as $delfile) {
  408. if (file_exists(BASEDIR . 'load/files/' . $delfile['downs_link'])) {
  409. unlink(BASEDIR . 'load/files/' . $delfile['downs_link']);
  410. }
  411. if (!empty($delfile['downs_screen'])) {
  412. unlink(BASEDIR . 'load/screen/' . $delfile['downs_screen']);
  413. }
  414. }
  415.  
  416. $_SESSION['note'] = 'Раздел успешно удален!';
  417. header ("Location: load.php?" . SID);
  418. exit;
  419. } else {
  420. show_error('Ошибка! Не установлены атрибуты доступа на дирекоторию с файлами!');
  421. }
  422. } else {
  423. show_error('Ошибка! Данный раздел имеет подкатегории!');
  424. }
  425. } else {
  426. show_error('Ошибка! Данного раздела не существует!');
  427. }
  428. } else {
  429. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  430. }
  431. } else {
  432. show_error('Ошибка! Удалять разделы могут только суперадмины!');
  433. }
  434.  
  435. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?' . SID . '">Вернуться</a><br />';
  436. break;
  437. # ###########################################################################################
  438. # # Просмотр файлов ##
  439. # ###########################################################################################
  440. case 'down':
  441.  
  442. $cats = DB :: $dbh -> queryFetch("SELECT * FROM `cats` WHERE `cats_id`=? LIMIT 1;", array($cid));
  443.  
  444. echo '<a href="#down"><img src="../images/img/downs.gif" alt="Вниз" /></a> <a href="load.php?' . SID . '">Категории</a> / ';
  445.  
  446. if (!empty($cats['cats_parent'])) {
  447. $podcats = DB :: $dbh -> queryFetch("SELECT `cats_id`, `cats_name` FROM `cats` WHERE `cats_id`=? LIMIT 1;", array($cats['cats_parent']));
  448. echo '<a href="load.php?act=down&amp;cid=' . $podcats['cats_id'] . '&amp;' . SID . '">' . $podcats['cats_name'] . '</a> / ';
  449. }
  450.  
  451. echo '<a href="load.php?act=newfile&amp;cid=' . $cid . '&amp;' . SID . '">Загрузить файл</a><br /><br />';
  452.  
  453. if ($cats > 0) {
  454. $config['newtitle'] = $cats['cats_name'];
  455.  
  456. echo '<img src="../images/img/open_dir.gif" alt="image" /> <b>' . $cats['cats_name'] . '</b> (Файлов: ' . $cats['cats_count'] . ')';
  457. echo ' (<a href="../load/down.php?cid=' . $cid . '&amp;start=' . $start . '&amp;' . SID . '">Обзор</a>)';
  458. echo '<hr />';
  459.  
  460. $querysub = DB :: $dbh -> query("SELECT * FROM `cats` WHERE `cats_parent`=?;", array($cid));
  461. $sub = $querysub -> fetchAll();
  462.  
  463. if (count($sub) > 0 && $start == 0) {
  464. foreach($sub as $subdata) {
  465. echo '<div class="b"><img src="../images/img/dir.gif" alt="image" /> ';
  466. echo '<b><a href="load.php?act=down&amp;cid=' . $subdata['cats_id'] . '&amp;' . SID . '">' . $subdata['cats_name'] . '</a></b> (' . $subdata['cats_count'] . ')</div>';
  467. }
  468. echo '<hr />';
  469. }
  470.  
  471. $total = DB :: $dbh -> querySingle("SELECT count(*) FROM `downs` WHERE `downs_cats_id`=?;", array($cid));
  472.  
  473. if ($total > 0) {
  474. if ($start >= $total) {
  475. $start = 0;
  476. }
  477.  
  478. $querydown = DB :: $dbh -> query("SELECT * FROM `downs` WHERE `downs_cats_id`=? ORDER BY `downs_time` DESC LIMIT " . $start . ", " . $config['downlist'] . ";", array($cid));
  479.  
  480. $is_admin = (is_admin(array(101)) && $log == $config['nickname']);
  481.  
  482. if ($is_admin) {
  483. echo '<form action="load.php?act=deldown&amp;cid=' . $cid . '&amp;start=' . $start . '&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '" method="post">';
  484. } while ($data = $querydown -> fetch()) {
  485. echo '<div class="b">';
  486.  
  487. echo '<img src="../images/img/zip.gif" alt="image" /> ';
  488.  
  489. echo '<b><a href="../load/down.php?act=view&amp;id=' . $data['downs_id'] . '&amp;' . SID . '">' . $data['downs_title'] . '</a></b> (' . read_file('../load/files/' . $data['downs_link']) . ')<br />';
  490.  
  491. if ($is_admin) {
  492. echo '<input type="checkbox" name="del[]" value="' . $data['downs_id'] . '" /> ';
  493. }
  494.  
  495. echo '<a href="load.php?act=editdown&amp;cid=' . $cid . '&amp;id=' . $data['downs_id'] . '&amp;start=' . $start . '&amp;' . SID . '">Редактировать</a> / ';
  496. echo '<a href="load.php?act=movedown&amp;cid=' . $cid . '&amp;id=' . $data['downs_id'] . '&amp;start=' . $start . '&amp;' . SID . '">Переместить</a></div>';
  497.  
  498. echo '<div>';
  499.  
  500. echo 'Скачиваний: ' . $data['downs_load'] . '<br />';
  501.  
  502. $raiting = (!empty($data['downs_rated'])) ? round($data['downs_raiting'] / $data['downs_rated'], 1) : 0;
  503.  
  504. echo 'Рейтинг: <b>' . $raiting . '</b> (Голосов: ' . $data['downs_rated'] . ')<br />';
  505. echo '<a href="../load/down.php?act=comments&amp;id=' . $data['downs_id'] . '&amp;' . SID . '">Комментарии</a> (' . $data['downs_comments'] . ')</div>';
  506. }
  507.  
  508. if ($is_admin) {
  509. echo '<br /><input type="submit" value="Удалить выбранное" /></form>';
  510. }
  511.  
  512. page_jumpnavigation('load.php?act=down&amp;cid=' . $cid . '&amp;', $config['downlist'], $start, $total);
  513. page_strnavigation('load.php?act=down&amp;cid=' . $cid . '&amp;', $config['downlist'], $start, $total);
  514. } else {
  515. show_error('В данном разделе еще нет файлов!');
  516. }
  517. } else {
  518. show_error('Ошибка! Данного раздела не существует!');
  519. }
  520.  
  521. echo '<img src="../images/img/open.gif" alt="image" /> <a href="load.php?act=newfile&amp;cid=' . $cid . '&amp;' . SID . '">Добавить</a><br />';
  522. echo '<img src="../images/img/reload.gif" alt="image" /> <a href="load.php?' . SID . '">Категории</a><br />';
  523. break;
  524. # ###########################################################################################
  525. # # Подготовка к редактированию файла ##
  526. # ###########################################################################################
  527. case 'editdown':
  528.  
  529. $config['newtitle'] = 'Редактирование файла';
  530.  
  531. $new = DB :: $dbh -> queryFetch("SELECT `downs`.*, `cats`.* FROM `downs` LEFT JOIN `cats` ON `downs`.`downs_cats_id`=`cats`.`cats_id` WHERE `downs_id`=? LIMIT 1;", array($id));
  532.  
  533. if (!empty($new)) {
  534. echo '<a href="#down"><img src="../images/img/downs.gif" alt="Вниз" /></a> <a href="load.php?' . SID . '">Категории</a> / ';
  535.  
  536. if (!empty($new['cats_parent'])) {
  537. $podcats = DB :: $dbh -> queryFetch("SELECT `cats_id`, `cats_name` FROM `cats` WHERE `cats_id`=? LIMIT 1;", array($new['cats_parent']));
  538. echo '<a href="load.php?act=down&amp;cid=' . $podcats['cats_id'] . '&amp;' . SID . '">' . $podcats['cats_name'] . '</a> / ';
  539. }
  540.  
  541. echo '<a href="../load/down.php?act=view&amp;id=' . $id . '&amp;' . SID . '">Обзор файла</a><br /><br />';
  542.  
  543. if (empty($new['downs_link'])) {
  544. echo '<b><big>Загрузка файла</big></b><br /><br />';
  545.  
  546. echo '<div class="form">';
  547. echo '<form action="load.php?act=loadfile&amp;id=' . $id . '&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '" method="post" enctype="multipart/form-data">';
  548. echo 'Прикрепить файл*:<br /><input type="file" name="loadfile" /><br />';
  549. echo '<input value="Загрузить" type="submit" /></form></div><br />';
  550. } else {
  551. echo '<img src="../images/img/download.gif" alt="image" /> <b>' . $new['downs_link'] . '</b> (' . read_file(BASEDIR . 'load/files/' . $new['downs_link']) . ') (<a href="load.php?act=delfile&amp;id=' . $id . '&amp;' . SID . '">Удалить</a>)<br />';
  552.  
  553. if (empty($new['downs_screen'])) {
  554. echo '<br /><b><big>Загрузка скриншота</big></b><br /><br />';
  555. echo '<div class="form">';
  556. echo '<form action="load.php?act=loadscreen&amp;id=' . $id . '&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '" method="post" enctype="multipart/form-data">';
  557. echo 'Прикрепить скрин (jpg,jpeg,gif,png):<br /><input type="file" name="screen" /><br />';
  558. echo '<input value="Загрузить" type="submit" /></form></div><br />';
  559. } else {
  560. echo '<img src="../images/img/gallery.gif" alt="image" /> <b>' . $new['downs_screen'] . '</b> (' . read_file(BASEDIR . 'load/screen/' . $new['downs_screen']) . ') (<a href="load.php?act=delscreen&amp;id=' . $id . '&amp;' . SID . '">Удалить</a>)<br /><br />';
  561. }
  562. }
  563.  
  564. echo '<b><big>Редактирование</big></b><br /><br />';
  565. echo '<div class="form">';
  566. echo '<form action="load.php?act=changedown&amp;id=' . $id . '&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '" method="post">';
  567.  
  568. $new['downs_text'] = nosmiles($new['downs_text']);
  569. $new['downs_text'] = yes_br($new['downs_text']);
  570.  
  571. echo 'Название*:<br />';
  572. echo '<input type="text" name="title" size="50" maxlength="50" value="' . $new['downs_title'] . '" /><br />';
  573. echo 'Описание*:<br />';
  574. echo '<textarea cols="25" rows="5" name="text">' . $new['downs_text'] . '</textarea><br />';
  575. echo 'Автор файла*:<br />';
  576. echo '<input type="text" name="author" maxlength="50" value="' . $new['downs_author'] . '" /><br />';
  577. echo 'Сайт автора:<br />';
  578. echo '<input type="text" name="site" maxlength="50" value="' . $new['downs_site'] . '" /><br />';
  579. echo 'Архив:<br />';
  580. echo '<input type="text" name="loadfile" maxlength="50" value="' . $new['downs_link'] . '" /><br />';
  581. echo 'Скриншот:<br />';
  582. echo '<input type="text" name="screen" maxlength="50" value="' . $new['downs_screen'] . '" /><br />';
  583.  
  584. echo '<input value="Изменить" type="submit" /></form></div><br />';
  585. } else {
  586. show_error('Данного файла не существует!');
  587. }
  588.  
  589. echo '<img src="../images/img/reload.gif" alt="image" /> <a href="load.php?' . SID . '">Категории</a><br />';
  590. break;
  591. # ###########################################################################################
  592. # # Редактирование файла ##
  593. # ###########################################################################################
  594. case 'changedown':
  595.  
  596. $uid = check($_GET['uid']);
  597. $title = check($_POST['title']);
  598. $text = check($_POST['text']);
  599. $author = check($_POST['author']);
  600. $site = check($_POST['site']);
  601. $loadfile = check(strtolower($_POST['loadfile']));
  602. $screen = check(strtolower($_POST['screen']));
  603.  
  604. if ($uid == $_SESSION['token']) {
  605. if (utf_strlen($title) >= 5 && utf_strlen($title) < 50) {
  606. if (utf_strlen($text) >= 50 && utf_strlen($text) < 5000) {
  607. if (utf_strlen($author) >= 3 && utf_strlen($author) < 50) {
  608. if (empty($site) || preg_match('#^http://([a-z0-9_\-\.])+(\.([a-z0-9\/])+)+$#', $site)) {
  609. $new = DB :: $dbh -> queryFetch("SELECT * FROM `downs` WHERE `downs_id`=?;", array($id));
  610. if (!empty($new)) {
  611. $downlink = DB :: $dbh -> querySingle("SELECT `downs_link` FROM `downs` WHERE `downs_link`=? AND `downs_id`<>? LIMIT 1;", array($loadfile, $id));
  612. if (empty($downlink)) {
  613. $downtitle = DB :: $dbh -> querySingle("SELECT `downs_title` FROM `downs` WHERE `downs_title`=? AND `downs_id`<>? LIMIT 1;", array($title, $id));
  614. if (empty($downtitle)) {
  615. $text = no_br($text);
  616.  
  617. if (!empty($loadfile) && $loadfile != $new['downs_link'] && file_exists(BASEDIR . 'load/files/' . $new['downs_link'])) {
  618. rename(BASEDIR . 'load/files/' . $new['downs_link'], BASEDIR . 'load/files/' . $loadfile);
  619. }
  620.  
  621. if (!empty($screen) && $screen != $new['downs_screen'] && file_exists(BASEDIR . 'load/screen/' . $new['downs_screen'])) {
  622. rename(BASEDIR . 'load/screen/' . $new['downs_screen'], BASEDIR . 'load/screen/' . $screen);
  623. }
  624.  
  625. DB :: $dbh -> query("UPDATE `downs` SET `downs_title`=?, `downs_text`=?, `downs_link`=?, `downs_author`=?, `downs_site`=?, `downs_screen`=?, `downs_time`=? WHERE `downs_id`=?;", array($title, $text, $loadfile, $author, $site, $screen, $new['downs_time'], $id));
  626.  
  627. $_SESSION['note'] = 'Данные успешно изменены!';
  628. header ("Location: load.php?act=editdown&id=$id&" . SID);
  629. exit;
  630. } else {
  631. show_error('Ошибка! Название ' . $title . ' уже имеется в общих файлах!');
  632. }
  633. } else {
  634. show_error('Ошибка! Архив ' . $loadfile . ' уже присутствует в общих файлах!');
  635. }
  636. } else {
  637. show_error('Данного файла не существует!');
  638. }
  639. } else {
  640. show_error('Ошибка! Недопустимый адрес сайта, необходим формат http://site.domen!');
  641. }
  642. } else {
  643. show_error('Ошибка! Слишком длинный или короткий ник (логин) автора (от 3 до 50 символов)!');
  644. }
  645. } else {
  646. show_error('Ошибка! Слишком длинный или короткий текст описания (от 50 до 5000 символов)!');
  647. }
  648. } else {
  649. show_error('Ошибка! Слишком длинное или короткое название (от 5 до 50 символов)!');
  650. }
  651. } else {
  652. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  653. }
  654.  
  655. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?act=editdown&amp;id=' . $id . '&amp;' . SID . '">Вернуться</a><br />';
  656. break;
  657. # ###########################################################################################
  658. # # Загрузка файла ##
  659. # ###########################################################################################
  660. case 'loadfile':
  661. show_title('site.png', 'Загрузка файла');
  662.  
  663. $querylink = DB :: $dbh -> querySingle("SELECT `downs_id` FROM `downs` WHERE `downs_id`=?;", array($id));
  664. if (!empty($querylink)) {
  665. if (is_uploaded_file($_FILES['loadfile']['tmp_name'])) {
  666. $filename = check(strtolower($_FILES['loadfile']['name']));
  667. if (preg_match('|^[a-z0-9_\.\-]+$|i', $filename)) {
  668. // - Позже будет вынесено в настройки, пока прописывайте вручную то что нужно вам -//
  669. $arrext = array('.txt', '.zip', '.rar', '.jpg', '.jpeg', '.jpg', '.gif', '.bmp', '.wbmp', '.png', '.mp3', '.mp4', '.3gp', '.wav', '.mmf', '.mid', '.midi', '.sis', '.jar', '.jad');
  670.  
  671. $ext = strtolower(strrchr($filename, "."));
  672.  
  673. if (in_array($ext, $arrext)) {
  674. if ($_FILES['loadfile']['size'] > 0 && $_FILES['loadfile']['size'] <= $config['fileupload']) {
  675. $downlink = DB :: $dbh -> querySingle("SELECT `downs_link` FROM `downs` WHERE `downs_link`=? LIMIT 1;", array($filename));
  676. if (empty($downlink)) {
  677. move_uploaded_file($_FILES['loadfile']['tmp_name'], BASEDIR . 'load/files/' . $filename);
  678. @chmod(BASEDIR . 'load/files/' . $filename, 0666);
  679.  
  680. DB :: $dbh -> query("UPDATE `downs` SET `downs_link`=? WHERE `downs_id`=?;", array($filename, $id));
  681.  
  682. $_SESSION['note'] = 'Файл успешно загружен!';
  683. header ("Location: load.php?act=editdown&id=$id&" . SID);
  684. exit;
  685. } else {
  686. show_error('Ошибка! Файл ' . $loadfile . ' уже имеется в общих файлах!');
  687. }
  688. } else {
  689. show_error('Ошибка! Максимальный размер загружаемого файла ' . formatsize($config['fileupload']) . '!');
  690. }
  691. } else {
  692. show_error('Ошибка! Недопустимое расширение файла!');
  693. }
  694. } else {
  695. show_error('Ошибка! В названии файла присутствуют недопустимые символы!');
  696. }
  697. } else {
  698. show_error('Ошибка! Не удалось загрузить файл!');
  699. }
  700. } else {
  701. show_error('Данного файла не существует!');
  702. }
  703.  
  704. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?act=editdown&amp;id=' . $id . '&amp;' . SID . '">Вернуться</a><br />';
  705. break;
  706. # ###########################################################################################
  707. # # Загрузка скриншота ##
  708. # ###########################################################################################
  709. case 'loadscreen':
  710. show_title('site.png', 'Загрузка скриншота');
  711.  
  712. $querylink = DB :: $dbh -> querySingle("SELECT `downs_link` FROM `downs` WHERE `downs_id`=?;", array($id));
  713. if (!empty($querylink)) {
  714. if (is_uploaded_file($_FILES['screen']['tmp_name'])) {
  715. $screenname = check(strtolower($_FILES['screen']['name']));
  716. $ext = strrchr($screenname, '.');
  717.  
  718. if ($ext == '.jpg' || $ext == '.jpeg' || $ext == '.gif' || $ext == '.png') {
  719. if ($_FILES['screen']['size'] > 0 && $_FILES['screen']['size'] <= $config['screenupload']) {
  720. $getimagesize = GetImageSize($_FILES['screen']['tmp_name']);
  721. $width = $getimagesize[0];
  722. $height = $getimagesize[1];
  723.  
  724. if ($width <= $config['screensize'] && $height <= $config['screensize'] && $width >= 100 && $height >= 100) {
  725. move_uploaded_file ($_FILES['screen']['tmp_name'], BASEDIR . 'load/screen/' . $querylink . $ext);
  726. @chmod(BASEDIR . 'load/screen/' . $querylink . $ext, 0666);
  727.  
  728. DB :: $dbh -> query("UPDATE `downs` SET `downs_screen`=? WHERE `downs_id`=?;", array($querylink . $ext, $id));
  729.  
  730. $_SESSION['note'] = 'Скриншот успешно загружен!';
  731. header ("Location: load.php?act=editdown&id=$id&" . SID);
  732. exit;
  733. } else {
  734. show_error('Ошибка! Требуемый размер скриншота: от 100 до ' . $config['screensize'] . ' px');
  735. }
  736. } else {
  737. show_error('Ошибка! Максимальный размер загружаемого скриншота ' . formatsize($config['screenupload']) . '!');
  738. }
  739. } else {
  740. show_error('Ошибка! Разрешается загружать скриншоты с расширением jpg, jpeg, gif и png!');
  741. }
  742. } else {
  743. show_error('Ошибка! Вы не загрузили скриншот!');
  744. }
  745. } else {
  746. show_error('Данного файла не существует!');
  747. }
  748.  
  749. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?act=editdown&amp;id=' . $id . '&amp;' . SID . '">Вернуться</a><br />';
  750. break;
  751. # ###########################################################################################
  752. # # Удаление файла ##
  753. # ###########################################################################################
  754. case 'delfile':
  755.  
  756. $link = DB :: $dbh -> queryFetch("SELECT * FROM `downs` WHERE `downs_id`=?;", array($id));
  757. if (!empty($link)) {
  758. if (!empty($link['downs_link']) && file_exists(BASEDIR . 'load/files/' . $link['downs_link'])) {
  759. unlink(BASEDIR . 'load/files/' . $link['downs_link']);
  760. }
  761. if (!empty($link['downs_screen']) && file_exists(BASEDIR . 'load/screen/' . $link['downs_screen'])) {
  762. unlink(BASEDIR . 'load/screen/' . $link['downs_screen']);
  763. }
  764.  
  765. DB :: $dbh -> query("UPDATE `downs` SET `downs_link`=?, `downs_screen`=? WHERE `downs_id`=?;", array('', '', $id));
  766.  
  767. $_SESSION['note'] = 'Файл успешно удален!';
  768. header ("Location: load.php?act=editdown&id=$id&" . SID);
  769. exit;
  770. } else {
  771. show_error('Ошибка! Данного файла не существует!');
  772. }
  773.  
  774. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?act=editdown&amp;id=' . $id . '&amp;' . SID . '">Вернуться</a><br />';
  775. break;
  776. # ###########################################################################################
  777. # # Удаление скриншота ##
  778. # ###########################################################################################
  779. case 'delscreen':
  780.  
  781. $queryscreen = DB :: $dbh -> querySingle("SELECT `downs_screen` FROM `downs` WHERE `downs_id`=?;", array($id));
  782. if (!empty($queryscreen)) {
  783. if (file_exists(BASEDIR . 'load/screen/' . $queryscreen)) {
  784. unlink(BASEDIR . 'load/screen/' . $queryscreen);
  785. }
  786. DB :: $dbh -> query("UPDATE `downs` SET `downs_screen`=? WHERE `downs_id`=?;", array('', $id));
  787.  
  788. $_SESSION['note'] = 'Скриншот успешно удален!';
  789. header ("Location: load.php?act=editdown&id=$id&" . SID);
  790. exit;
  791. } else {
  792. show_error('Ошибка! Данного файла не существует!');
  793. }
  794.  
  795. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?act=editdown&amp;id=' . $id . '&amp;' . SID . '">Вернуться</a><br />';
  796. break;
  797. # ###########################################################################################
  798. # # Подготовка к перемещению файла ##
  799. # ###########################################################################################
  800. case 'movedown':
  801.  
  802. $querydown = DB :: $dbh -> query("SELECT * FROM `downs` WHERE `downs_id`=? LIMIT 1;", array($id));
  803. $downs = $querydown -> fetch();
  804.  
  805. if (!empty($downs)) {
  806. echo '<img src="../images/img/download.gif" alt="image" /> <b>' . $downs['downs_title'] . '</b> (' . read_file(BASEDIR . 'load/files/' . $downs['downs_link']) . ')<br /><br />';
  807.  
  808. $querycats = DB :: $dbh -> query("SELECT `cats_id`, `cats_parent`, `cats_name` FROM `cats` ORDER BY `cats_order` ASC;");
  809. $cats = $querycats -> fetchAll();
  810.  
  811. if (count($cats) > 0) {
  812. $output = array();
  813. foreach ($cats as $row) {
  814. $i = $row['cats_id'];
  815. $p = $row['cats_parent'];
  816. $output[$p][$i] = $row;
  817. }
  818.  
  819. echo '<div class="form" id="form"><form action="load.php?act=addmovedown&amp;cid=' . $downs['downs_cats_id'] . '&amp;id=' . $id . '&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '" method="post">';
  820.  
  821. echo 'Выберите раздел для перемещения:<br />';
  822. echo '<select name="section">';
  823. echo '<option value="0">Список разделов</option>';
  824.  
  825. foreach ($output[0] as $key => $data) {
  826. if ($downs['downs_cats_id'] != $data['cats_id']) {
  827. echo '<option value="' . $data['cats_id'] . '">' . $data['cats_name'] . '</option>';
  828. }
  829.  
  830. if (isset($output[$key])) {
  831. foreach($output[$key] as $datasub) {
  832. if ($downs['downs_cats_id'] != $datasub['cats_id']) {
  833. echo '<option value="' . $datasub['cats_id'] . '">– ' . $datasub['cats_name'] . '</option>';
  834. }
  835. }
  836. }
  837. }
  838.  
  839. echo '</select>';
  840.  
  841. echo '<input type="submit" value="Переместить" /></form></div><br />';
  842. } else {
  843. show_error('Разделы загрузок еще не созданы!');
  844. }
  845. } else {
  846. show_error('Ошибка! Данного файла не существует!');
  847. }
  848.  
  849. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?act=down&amp;cid=' . $cid . '&amp;start=' . $start . '&amp;' . SID . '">Вернуться</a><br />';
  850. break;
  851. # ###########################################################################################
  852. # # Перемещение файла ##
  853. # ###########################################################################################
  854. case 'addmovedown':
  855.  
  856. $uid = check($_GET['uid']);
  857. $section = abs(intval($_POST['section']));
  858.  
  859. if ($uid == $_SESSION['token']) {
  860. $querycats = DB :: $dbh -> querySingle("SELECT `cats_id` FROM `cats` WHERE `cats_id`=? LIMIT 1;", array($section));
  861. if (!empty($querycats)) {
  862. $querydown = DB :: $dbh -> querySingle("SELECT `downs_id` FROM `downs` WHERE `downs_id`=? LIMIT 1;", array($id));
  863. if (!empty($querydown)) {
  864. DB :: $dbh -> query("UPDATE `downs` SET `downs_cats_id`=? WHERE `downs_id`=?;", array($section, $id));
  865. DB :: $dbh -> query("UPDATE `commload` SET `commload_cats`=? WHERE `commload_down`=?;", array($section, $id));
  866. // Обновление счетчиков
  867. DB :: $dbh -> query("UPDATE `cats` SET `cats_count`=`cats_count`+1 WHERE `cats_id`=?", array($section));
  868. DB :: $dbh -> query("UPDATE `cats` SET `cats_count`=`cats_count`-1 WHERE `cats_id`=?", array($cid));
  869.  
  870. $_SESSION['note'] = 'Файл успешно перемещен!';
  871. header ("Location: load.php?act=down&cid=$section&" . SID);
  872. exit;
  873. } else {
  874. show_error('Ошибка! Файла для перемещения не существует!');
  875. }
  876. } else {
  877. show_error('Ошибка! Выбранного раздела не существует!');
  878. }
  879. } else {
  880. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  881. }
  882.  
  883. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?act=movedown&amp;id=' . $id . '&amp;' . SID . '">Вернуться</a><br />';
  884. echo '<img src="../images/img/reload.gif" alt="image" /> <a href="load.php?act=down&amp;cid=' . $cid . '&amp;' . SID . '">К разделам</a><br />';
  885. break;
  886. # ###########################################################################################
  887. # # Удаление файлов ##
  888. # ###########################################################################################
  889. case 'deldown':
  890.  
  891. $uid = check($_GET['uid']);
  892. if (isset($_POST['del'])) {
  893. $del = intar($_POST['del']);
  894. } else {
  895. $del = 0;
  896. }
  897.  
  898. if (is_admin(array(101)) && $log == $config['nickname']) {
  899. if ($uid == $_SESSION['token']) {
  900. if ($del > 0) {
  901. $del = implode(',', $del);
  902.  
  903. if (is_writeable(BASEDIR . 'load/files')) {
  904. $querydel = DB :: $dbh -> query("SELECT `downs_link`, `downs_screen` FROM `downs` WHERE `downs_id` IN (" . $del . ");");
  905. $arr_script = $querydel -> fetchAll();
  906.  
  907. DB :: $dbh -> query("DELETE FROM `commload` WHERE `commload_down` IN (" . $del . ");");
  908. $deldowns = DB :: $dbh -> exec("DELETE FROM `downs` WHERE `downs_id` IN (" . $del . ");");
  909. // Обновление счетчиков
  910. DB :: $dbh -> query("UPDATE `cats` SET `cats_count`=`cats_count`-? WHERE `cats_id`=?", array($deldowns, $cid));
  911.  
  912. foreach ($arr_script as $delfile) {
  913. if (file_exists(BASEDIR . 'load/files/' . $delfile['downs_link'])) {
  914. unlink(BASEDIR . 'load/files/' . $delfile['downs_link']);
  915. }
  916. if (!empty($delfile['downs_screen'])) {
  917. unlink(BASEDIR . 'load/screen/' . $delfile['downs_screen']);
  918. }
  919. }
  920.  
  921. $_SESSION['note'] = 'Выбранные файлы успешно удалены!';
  922. header ("Location: load.php?act=down&cid=$cid&start=$start&" . SID);
  923. exit;
  924. } else {
  925. show_error('Ошибка! Не установлены атрибуты доступа на дирекоторию с файлами!');
  926. }
  927. } else {
  928. show_error('Ошибка! Отсутствуют выбранные файлы!');
  929. }
  930. } else {
  931. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  932. }
  933. } else {
  934. show_error('Ошибка! Удалять файлы могут только суперадмины!');
  935. }
  936.  
  937. echo '<img src="../images/img/back.gif" alt="image" /> <a href="load.php?act=down&amp;cid=' . $cid . '&amp;start=' . $start . '&amp;' . SID . '">Вернуться</a><br />';
  938. break;
  939.  
  940. default:
  941. header("location: load.php?" . SID);
  942. exit;
  943. endswitch;
  944.  
  945. echo '<img src="../images/img/panel.gif" alt="image" /> <a href="index.php?' . SID . '">В админку</a><br />';
  946. echo '<img src="../images/img/homepage.gif" alt="image" /> <a href="../index.php?' . SID . '">На главную</a>';
  947. } else {
  948. header ('Location: ' . BASEDIR . 'index.php?' . SID);
  949. exit;
  950. }
  951.  
  952. include_once ('../themes/' . $config['themes'] . '/foot.php');
  953.  
  954. ?>