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

Размер файла: 12.13Kb
  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/header.php');
  16.  
  17. if (isset($_GET['act'])) {
  18. $act = check($_GET['act']);
  19. } else {
  20. $act = 'freeavatars';
  21. }
  22. if (isset($_GET['start'])) {
  23. $start = abs(intval($_GET['start']));
  24. } else {
  25. $start = 0;
  26. }
  27. if (isset($_GET['id'])) {
  28. $id = abs(intval($_GET['id']));
  29. } else {
  30. $id = 0;
  31. }
  32. if (isset($_GET['ref'])) {
  33. $ref = check($_GET['ref']);
  34. } else {
  35. $ref = 'freeavatars';
  36. }
  37.  
  38. if (is_admin(array(101, 102))) {
  39. show_title('site.png', 'Управление аватарами');
  40. $config['newtitle'] = 'Управление аватарами';
  41.  
  42. switch ($act):
  43. ############################################################################################
  44. ## Бесплатные аватары ##
  45. ############################################################################################
  46. case 'freeavatars':
  47.  
  48. echo '<b>Бесплатные аватары</b> | <a href="avatars.php?act=payavatars&amp;'.SID.'">Платные аватары</a><br /><br />';
  49.  
  50. $total = DB::run() -> querySingle("SELECT count(*) FROM `avatars` WHERE `avatars_cats`=?;", array(1));
  51.  
  52. if ($total > 0) {
  53. if ($start >= $total) {
  54. $start = 0;
  55. }
  56.  
  57. $queryavatars = DB::run() -> query("SELECT * FROM `avatars` WHERE `avatars_cats`=? ORDER BY `avatars_id` ASC LIMIT ".$start.", ".$config['avlist'].";", array(1));
  58.  
  59. echo '<form action="avatars.php?act=del&amp;ref=freeavatars&amp;start='.$start.'&amp;uid='.$_SESSION['token'].'&amp;'.SID.'" method="post">';
  60.  
  61. while ($data = $queryavatars -> fetch()) {
  62. echo '<input type="checkbox" name="del[]" value="'.$data['avatars_id'].'" /> <img src="'.BASEDIR.'images/avatars/'.$data['avatars_name'].'" alt="" /> — <b>'.$data['avatars_name'].'</b><br />';
  63. }
  64.  
  65. echo '<br /><input type="submit" value="Удалить выбранное" /></form>';
  66.  
  67. page_strnavigation('avatars.php?', $config['avlist'], $start, $total);
  68.  
  69. echo 'Всего аватаров: <b>'.$total.'</b><br /><br />';
  70. } else {
  71. show_error('В данной категории аватаров нет!');
  72. }
  73.  
  74. echo '<img src="../images/img/download.gif" alt="image" /> <a href="avatars.php?act=add&amp;ref=freeavatars&amp;cats=1&amp;start='.$start.'&amp;'.SID.'">Загрузить</a><br />';
  75. break;
  76.  
  77. ############################################################################################
  78. ## Платные аватары ##
  79. ############################################################################################
  80. case 'payavatars':
  81.  
  82. echo '<a href="avatars.php?act=freeavatars&amp;'.SID.'">Бесплатные аватары</a> | <b>Платные аватары</b><br /><br />';
  83.  
  84. $total = DB::run() -> querySingle("SELECT count(*) FROM `avatars` WHERE `avatars_cats`=?;", array(2));
  85.  
  86. if ($total > 0) {
  87. if ($start >= $total) {
  88. $start = 0;
  89. }
  90.  
  91. $queryavatars = DB::run() -> query("SELECT * FROM `avatars` WHERE `avatars_cats`=? ORDER BY `avatars_id` ASC LIMIT ".$start.", ".$config['avlist'].";", array(2));
  92.  
  93. echo '<form action="avatars.php?act=del&amp;ref=payavatars&amp;start='.$start.'&amp;uid='.$_SESSION['token'].'&amp;'.SID.'" method="post">';
  94.  
  95. while ($data = $queryavatars -> fetch()) {
  96. echo '<input type="checkbox" name="del[]" value="'.$data['avatars_id'].'" /> <img src="'.BASEDIR.'images/avatars2/'.$data['avatars_name'].'" alt="" /> — <b>'.$data['avatars_name'].'</b><br />';
  97. }
  98.  
  99. echo '<br /><input type="submit" value="Удалить выбранное" /></form>';
  100.  
  101. page_strnavigation('avatars.php?act=payavatars&amp;', $config['avlist'], $start, $total);
  102.  
  103. echo 'Всего аватаров: <b>'.$total.'</b><br /><br />';
  104. } else {
  105. show_error('В данной категории аватаров нет!');
  106. }
  107.  
  108. echo '<img src="../images/img/download.gif" alt="image" /> <a href="avatars.php?act=add&amp;ref=payavatars&amp;cats=2&amp;start='.$start.'&amp;'.SID.'">Загрузить</a><br />';
  109. break;
  110.  
  111. ############################################################################################
  112. ## Форма загрузки аватара ##
  113. ############################################################################################
  114. case 'add':
  115.  
  116. $config['newtitle'] = 'Добавление аватара';
  117.  
  118. if (isset($_GET['cats'])) {
  119. $cats = abs(intval($_GET['cats']));
  120. } else {
  121. $cats = 0;
  122. }
  123.  
  124. echo '<div class="form">';
  125. echo '<form action="avatars.php?act=load&amp;start='.$start.'&amp;uid='.$_SESSION['token'].'&amp;'.SID.'" method="post" enctype="multipart/form-data">';
  126.  
  127. echo 'Категория:<br />';
  128. echo '<select name="cats">';
  129. $selected = ($cats == 1) ? ' selected="selected"' : '';
  130. echo '<option value="1"'.$selected.'>Бесплатные аватары</option>';
  131. $selected = ($cats == 2) ? ' selected="selected"' : '';
  132. echo '<option value="2"'.$selected.'>Платные аватары</option>';
  133. echo '</select><br />';
  134.  
  135. echo 'Прикрепить аватар:<br /><input type="file" name="avatar" /><br />';
  136.  
  137. echo '<input type="submit" value="Загрузить" /></form></div><br />';
  138.  
  139. echo 'Разрешается добавлять аватары с расширением gif и png<br />';
  140. echo 'Весом не более '.formatsize($config['avatarweight']).' и размером '.$config['avatarsize'].' px<br /><br />';
  141.  
  142. echo '<img src="../images/img/back.gif" alt="image" /> <a href="avatars.php?act='.$ref.'&amp;start='.$start.'&amp;'.SID.'">Вернуться</a><br />';
  143. break;
  144.  
  145. ############################################################################################
  146. ## Загрузка аватара ##
  147. ############################################################################################
  148. case 'load':
  149.  
  150. $config['newtitle'] = 'Результат добавления';
  151.  
  152. $uid = check($_GET['uid']);
  153. $cats = abs(intval($_POST['cats']));
  154.  
  155. if ($uid == $_SESSION['token']) {
  156. if ($cats == 1 || $cats == 2) {
  157. if (is_uploaded_file($_FILES['avatar']['tmp_name'])) {
  158. $avatarname = check(strtolower($_FILES['avatar']['name']));
  159. $avatarsize = getimagesize($_FILES['avatar']['tmp_name']);
  160. $ext = strrchr($avatarname, '.');
  161.  
  162. if (preg_match('|^[a-z0-9_\.\-]+$|i', $avatarname)) {
  163. if (strlen($avatarname) >= 5 && strlen($avatarname) <= 20) {
  164. $checkname = DB::run() -> querySingle("SELECT `avatars_id` FROM `avatars` WHERE `avatars_name`=? AND `avatars_cats`=? LIMIT 1;", array($avatarname, $cats));
  165. if (empty($checkname)) {
  166. if ($ext == '.gif' || $ext == '.png') {
  167. if ($_FILES['avatar']['size'] > 0 && $_FILES['avatar']['size'] <= $config['avatarweight']) {
  168. if ($avatarsize[0] == $config['avatarsize'] && $avatarsize[1] == $config['avatarsize']) {
  169. DB::run() -> query("INSERT INTO `avatars` (`avatars_cats`, `avatars_name`) VALUES (?, ?);", array($cats, $avatarname));
  170.  
  171. if ($cats == 1) {
  172. move_uploaded_file($_FILES['avatar']['tmp_name'], BASEDIR.'images/avatars/'.$avatarname);
  173. @chmod(BASEDIR.'images/avatars/'.$avatarname, 0666);
  174. $ref = 'freeavatars';
  175. }
  176.  
  177. if ($cats == 2) {
  178. move_uploaded_file($_FILES['avatar']['tmp_name'], BASEDIR.'images/avatars2/'.$avatarname);
  179. @chmod(BASEDIR.'images/avatars2/'.$avatarname, 0666);
  180. $ref = 'payavatars';
  181. }
  182.  
  183. $_SESSION['note'] = 'Аватар успешно загружен!';
  184. redirect("avatars.php?act=$ref&start=$start&".SID);
  185. } else {
  186. show_error('Ошибка! Размер изображения должен быть '.$config['avatarsize'].' px!');
  187. }
  188. } else {
  189. show_error('Ошибка! Вес изображения должен быть не более '.formatsize($config['avatarweight']).'!');
  190. }
  191. } else {
  192. show_error('Ошибка! Недопустимое расширение (Разрешено gif и png)!');
  193. }
  194. } else {
  195. show_error('Ошибка! Аватар с данным названием уже имеется на сайте!');
  196. }
  197. } else {
  198. show_error('Слишком длинное или короткое имя аватара (Необходимо от 2 до 20 символов)!');
  199. }
  200. } else {
  201. show_error('Ошибка! В названии изображения присутствуют недопустимые символы!');
  202. }
  203. } else {
  204. show_error('Ошибка! Не удалось загрузить изображение!');
  205. }
  206. } else {
  207. show_error('Ошибка! Вы не выбрали категорию для добавления аватара!');
  208. }
  209. } else {
  210. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  211. }
  212.  
  213. echo '<img src="../images/img/back.gif" alt="image" /> <a href="avatars.php?act=add&amp;cats='.$cats.'&amp;start='.$start.'&amp;'.SID.'">Вернуться</a><br />';
  214. break;
  215.  
  216. ############################################################################################
  217. ## Удаление аватаров ##
  218. ############################################################################################
  219. case 'del':
  220. $uid = check($_GET['uid']);
  221. if (isset($_POST['del'])) {
  222. $del = intar($_POST['del']);
  223. } else {
  224. $del = 0;
  225. }
  226.  
  227. if ($uid == $_SESSION['token']) {
  228. if (!empty($del)) {
  229. $del = implode(',', $del);
  230.  
  231. $querydel = DB::run() -> query("SELECT `avatars_cats`, `avatars_name` FROM `avatars` WHERE `avatars_id` IN (".$del.");");
  232. $arr_avatars = $querydel -> fetchAll();
  233.  
  234. DB::run() -> query("DELETE FROM `avatars` WHERE `avatars_id` IN (".$del.");");
  235.  
  236. foreach ($arr_avatars as $delfile) {
  237. if ($delfile['avatars_cats'] == 1) {
  238. if (!empty($delfile['avatars_name']) && file_exists(BASEDIR.'images/avatars/'.$delfile['avatars_name'])) {
  239. unlink(BASEDIR.'images/avatars/'.$delfile['avatars_name']);
  240. }
  241. }
  242.  
  243. if ($delfile['avatars_cats'] == 2) {
  244. if (!empty($delfile['avatars_name']) && file_exists(BASEDIR.'images/avatars2/'.$delfile['avatars_name'])) {
  245. unlink(BASEDIR.'images/avatars2/'.$delfile['avatars_name']);
  246. }
  247. }
  248. }
  249.  
  250. $_SESSION['note'] = 'Выбранные аватары успешно удалены!';
  251. redirect("avatars.php?act=$ref&start=$start&".SID);
  252. } else {
  253. show_error('Ошибка! Отсутствуют выбранные аватары!');
  254. }
  255. } else {
  256. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  257. }
  258.  
  259. echo '<img src="../images/img/back.gif" alt="image" /> <a href="avatars.php?act='.$ref.'&amp;start='.$start.'&amp;'.SID.'">Вернуться</a><br />';
  260. break;
  261.  
  262. default:
  263. redirect("avatars.php?".SID);
  264. endswitch;
  265.  
  266. echo '<img src="../images/img/panel.gif" alt="image" /> <a href="index.php?'.SID.'">В админку</a><br />';
  267.  
  268. } else {
  269. redirect(BASEDIR.'index.php?'.SID);
  270. }
  271.  
  272. include_once ('../themes/footer.php');
  273. ?>