Просмотр файла gallery/index.php

Размер файла: 37.79Kb
  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['start'])) {
  23. $start = abs(intval($_GET['start']));
  24. } else {
  25. $start = 0;
  26. }
  27. if (empty($_GET['uz'])) {
  28. $uz = check($log);
  29. } else {
  30. $uz = check($_GET['uz']);
  31. }
  32. if (isset($_GET['gid'])) {
  33. $gid = abs(intval($_GET['gid']));
  34. } else {
  35. $gid = 0;
  36. }
  37.  
  38. show_title('menu.png', 'Галерея сайта');
  39. $config['newtitle'] = 'Галерея сайта';
  40.  
  41. switch ($act):
  42. # ###########################################################################################
  43. # # Главная страница ##
  44. # ###########################################################################################
  45. case 'index':
  46.  
  47. echo '<a href="#down"><img src="../images/img/downs.gif" alt="image" /></a> ';
  48.  
  49. if (is_user()) {
  50. echo '<a href="index.php?act=album&amp;uz=' . $log . '&amp;' . SID . '">Мой альбом</a> / ';
  51. }
  52.  
  53. echo '<a href="index.php?act=addphoto&amp;' . SID . '">Добавить фото</a>';
  54.  
  55. if (is_admin(array(101, 102, 103, 105))) {
  56. echo ' / <a href="' . ADMINDIR . 'gallery.php?start=' . $start . '&amp;' . SID . '">Управление</a>';
  57. }
  58. echo '<br />';
  59.  
  60. $total = DB :: $dbh -> querySingle("SELECT count(*) FROM `photo`;");
  61.  
  62. if ($total > 0) {
  63. if ($start >= $total) {
  64. $start = 0;
  65. }
  66.  
  67. $queryphoto = DB :: $dbh -> query("SELECT * FROM `photo` ORDER BY `photo_time` DESC LIMIT " . $start . ", " . $config['fotolist'] . ";");
  68.  
  69. while ($data = $queryphoto -> fetch()) {
  70. if ($data['photo_rating'] > 0) {
  71. $data['photo_rating'] = '<span style="color:#00aa00">+' . $data['photo_rating'] . '</span>';
  72. }
  73. if ($data['photo_rating'] < 0) {
  74. $data['photo_rating'] = '<span style="color:#ff0000">' . $data['photo_rating'] . '</span>';
  75. }
  76.  
  77. echo '<div class="b"><img src="../images/img/gallery.gif" alt="image" /> ';
  78. echo '<b><a href="index.php?act=showimg&amp;gid=' . $data['photo_id'] . '&amp;start=' . $start . '&amp;' . SID . '">' . $data['photo_title'] . '</a></b> (' . read_file(BASEDIR . 'gallery/pictures/' . $data['photo_link']) . ') (' . $data['photo_rating'] . ')</div><div>';
  79.  
  80. echo '<a href="index.php?act=showimg&amp;gid=' . $data['photo_id'] . '&amp;start=' . $start . '&amp;' . SID . '"><img src="resize.php?dir=gallery/pictures&amp;name=' . $data['photo_link'] . '" alt="image" /></a>';
  81.  
  82. echo '<br />' . bb_code($data['photo_text']) . '<br />';
  83.  
  84. echo 'Добавлено: <a href="../pages/anketa.php?uz=' . $data['photo_user'] . '&amp;' . SID . '">' . nickname($data['photo_user']) . '</a> (' . date_fixed($data['photo_time']) . ')<br />';
  85. echo '<a href="index.php?act=comments&amp;gid=' . $data['photo_id'] . '&amp;' . SID . '">Комментарии</a> (' . $data['photo_comments'] . ')';
  86. echo '</div>';
  87. }
  88. page_jumpnavigation('index.php?', $config['fotolist'], $start, $total);
  89. page_strnavigation('index.php?', $config['fotolist'], $start, $total);
  90.  
  91. echo 'Всего фотографий: <b>' . $total . '</b><br /><br />';
  92. } else {
  93. show_error('Фотографий нет, будь первым!');
  94. }
  95.  
  96. echo '<a href="#up"><img src="../images/img/ups.gif" alt="Вверх" /></a> ';
  97. echo '<a href="top.php?' . SID . '">Топ фото</a> / ';
  98. echo '<a href="index.php?act=gallery&amp;' . SID . '">Все альбомы</a><br />';
  99. break;
  100. # ###########################################################################################
  101. # # Просмотр полной фотографии ##
  102. # ###########################################################################################
  103. case 'showimg':
  104.  
  105. $queryphoto = DB :: $dbh -> query("SELECT * FROM `photo` WHERE `photo_id`=? LIMIT 1;", array($gid));
  106. $data = $queryphoto -> fetch();
  107. if (!empty($data)) {
  108. $config['newtitle'] = $data['photo_title'];
  109.  
  110. if ($data['photo_rating'] > 0) {
  111. $data['photo_rating'] = '<span style="color:#00aa00">+' . $data['photo_rating'] . '</span>';
  112. }
  113. if ($data['photo_rating'] < 0) {
  114. $data['photo_rating'] = '<span style="color:#ff0000">' . $data['photo_rating'] . '</span>';
  115. }
  116.  
  117. echo '<div class="b"><img src="../images/img/gallery.gif" alt="image" /> ';
  118. echo '<b>' . $data['photo_title'] . '</b> (' . read_file(BASEDIR . 'gallery/pictures/' . $data['photo_link']) . ')</div><div>';
  119.  
  120. echo '<a href="' . BASEDIR . 'gallery/pictures/' . $data['photo_link'] . '"><img src="' . BASEDIR . 'gallery/pictures/' . $data['photo_link'] . '" alt="image" /></a>';
  121. echo '<br />' . bb_code($data['photo_text']) . '<br /><br />';
  122.  
  123. echo 'Рейтинг: <a href="index.php?act=vote&amp;gid=' . $gid . '&amp;vote=down&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '"><img src="../images/img/thumb-down.gif" alt="Минус" /></a> <big><b>' . $data['photo_rating'] . '</b></big> <a href="index.php?act=vote&amp;gid=' . $gid . '&amp;vote=up&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '"><img src="../images/img/thumb-up.gif" alt="Плюс" /></a><br />';
  124.  
  125. echo 'Добавлено: <a href="../pages/anketa.php?uz=' . $data['photo_user'] . '&amp;' . SID . '">' . nickname($data['photo_user']) . '</a> (' . date_fixed($data['photo_time']) . ')<br />';
  126. echo '<a href="index.php?act=comments&amp;gid=' . $data['photo_id'] . '&amp;' . SID . '">Комментарии</a> (' . $data['photo_comments'] . ')';
  127. echo '</div><br />';
  128.  
  129. echo '<img src="../images/img/reload.gif" alt="image" /> <a href="index.php?act=album&amp;uz=' . $data['photo_user'] . '&amp;' . SID . '">В альбом</a><br />';
  130. } else {
  131. show_error('Ошибка! Данного изображения нет в базе');
  132. }
  133.  
  134. echo '<img src="../images/img/back.gif" alt="image" /> <a href="index.php?' . SID . '">В галерею</a><br />';
  135. break;
  136. # ###########################################################################################
  137. # # Оценка фотографии ##
  138. # ###########################################################################################
  139. case 'vote':
  140.  
  141. $uid = check($_GET['uid']);
  142. $vote = check($_GET['vote']);
  143.  
  144. if (is_user()) {
  145. if ($uid == $_SESSION['token']) {
  146. if ($vote == 'up' || $vote == 'down') {
  147. if ($vote == 'up') {
  148. $score = 1;
  149. } else {
  150. $score = -1;
  151. }
  152.  
  153. $queryphoto = DB :: $dbh -> query("SELECT * FROM `photo` WHERE `photo_id`=? LIMIT 1;", array($gid));
  154. $data = $queryphoto -> fetch();
  155.  
  156. if (!empty($data)) {
  157. if ($log != $data['photo_user']) {
  158. $queryrated = DB :: $dbh -> querySingle("SELECT `rated_id` FROM `ratedphoto` WHERE `rated_photo`=? AND `rated_user`=? LIMIT 1;", array($gid, $log));
  159.  
  160. if (empty($queryrated)) {
  161. $expiresrated = SITETIME + 3600 * $config['photoexprated'];
  162.  
  163. DB :: $dbh -> query("DELETE FROM `ratedphoto` WHERE `rated_time`<?;", array(SITETIME));
  164. DB :: $dbh -> query("INSERT INTO `ratedphoto` (`rated_photo`, `rated_user`, `rated_time`) VALUES (?, ?, ?);", array($gid, $log, $expiresrated));
  165. DB :: $dbh -> query("UPDATE `photo` SET `photo_rating`=`photo_rating`+? WHERE `photo_id`=?", array($score, $gid));
  166.  
  167. echo '<b>Спасибо! Ваша оценка принята!</b><br />';
  168. echo 'Рейтинг фотографии: ' . ($data['photo_rating'] + $score) . '<br /><br />';
  169. } else {
  170. show_error('Ошибка! Вы уже оценивали данную фотографию!');
  171. }
  172. } else {
  173. show_error('Ошибка! Нельзя голосовать за свою фотографии!');
  174. }
  175. } else {
  176. show_error('Ошибка! Данной фотографии не существует!');
  177. }
  178. } else {
  179. show_error('Ошибка! Необходимо проголосовать за или против фотографии!');
  180. }
  181. } else {
  182. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  183. }
  184. } else {
  185. show_login('Вы не авторизованы, для голосования за фотографии, необходимо');
  186. }
  187.  
  188. echo '<img src="../images/img/back.gif" alt="image" /> <a href="index.php?act=showimg&amp;gid=' . $gid . '&amp;' . SID . '">Вернуться</a><br />';
  189. break;
  190. # ###########################################################################################
  191. # # Просмотр по категориям ##
  192. # ###########################################################################################
  193. case 'gallery':
  194.  
  195. $config['newtitle'] = 'Альбомы пользователей';
  196.  
  197. $total = DB :: $dbh -> querySingle("select COUNT(DISTINCT `photo_user`) from `photo`");
  198.  
  199. if ($total > 0) {
  200. if ($start >= $total) {
  201. $start = 0;
  202. }
  203.  
  204. $queryphoto = DB :: $dbh -> query("SELECT COUNT(*) AS cnt, `photo_user` FROM `photo` GROUP BY `photo_user` ORDER BY cnt DESC LIMIT " . $start . ", " . $config['photogroup'] . ";");
  205.  
  206. while ($data = $queryphoto -> fetch()) {
  207. echo '<img src="../images/img/gallery.gif" alt="image" /> ';
  208. echo '<b><a href="index.php?act=album&amp;uz=' . $data['photo_user'] . '&amp;' . SID . '">' . nickname($data['photo_user']) . '</a></b> (' . $data['cnt'] . ')<br />';
  209. }
  210.  
  211. page_jumpnavigation('index.php?act=gallery&amp;', $config['photogroup'], $start, $total);
  212. page_strnavigation('index.php?act=gallery&amp;', $config['photogroup'], $start, $total);
  213.  
  214. echo 'Всего альбомов: <b>' . $total . '</b><br /><br />';
  215. } else {
  216. show_error('Фотографии еще не загружены!');
  217. }
  218.  
  219. echo '<img src="../images/img/back.gif" alt="image" /> <a href="index.php?' . SID . '">Галерея</a><br />';
  220. break;
  221. # ###########################################################################################
  222. # # Просмотр по пользователям ##
  223. # ###########################################################################################
  224. case 'album':
  225.  
  226. $config['newtitle'] = 'Список всех фотографий';
  227.  
  228. $total = DB :: $dbh -> querySingle("SELECT count(*) FROM `photo` WHERE `photo_user`=?;", array($uz));
  229.  
  230. if ($total > 0) {
  231. if ($start >= $total) {
  232. $start = 0;
  233. }
  234.  
  235. $queryphoto = DB :: $dbh -> query("SELECT * FROM `photo` WHERE `photo_user`=? ORDER BY `photo_time` DESC LIMIT " . $start . ", " . $config['fotolist'] . ";", array($uz));
  236.  
  237. $moder = ($log == $uz) ? 1 : 0;
  238.  
  239. /**
  240. * if (!empty($moder)) {
  241. * echo '<form action="index.php?act=delphoto&amp;uz='.$uz.'&amp;start='.$start.'&amp;uid='.$_SESSION['token'].'&amp;'.SID.'" method="post">';
  242. * }
  243. */
  244.  
  245. while ($data = $queryphoto -> fetch()) {
  246. echo '<div class="b"><img src="../images/img/gallery.gif" alt="image" /> ';
  247. echo '<b><a href="index.php?act=showimg&amp;gid=' . $data['photo_id'] . '&amp;start=' . $start . '&amp;' . SID . '">' . $data['photo_title'] . '</a></b> (' . read_file(BASEDIR . 'gallery/pictures/' . $data['photo_link']) . ')<br />';
  248.  
  249. if (!empty($moder)) {
  250. // echo '<input type="checkbox" name="del[]" value="'.$data['photo_id'].'" /> ';
  251. echo '<a href="index.php?act=edit&amp;gid=' . $data['photo_id'] . '&amp;start=' . $start . '&amp;' . SID . '">Редактировать</a> / ';
  252. echo '<a href="index.php?act=delphoto&amp;gid=' . $data['photo_id'] . '&amp;start=' . $start . '&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '">Удалить</a>';
  253. }
  254.  
  255. echo '</div><div>';
  256. echo '<a href="index.php?act=showimg&amp;gid=' . $data['photo_id'] . '&amp;start=' . $start . '&amp;' . SID . '"><img src="resize.php?dir=gallery/pictures&amp;name=' . $data['photo_link'] . '" alt="image" /></a>';
  257.  
  258. echo '<br />' . $data['photo_text'] . '<br />';
  259.  
  260. echo 'Добавлено: <a href="../pages/anketa.php?uz=' . $data['photo_user'] . '&amp;' . SID . '">' . nickname($data['photo_user']) . '</a> (' . date_fixed($data['photo_time']) . ')<br />';
  261. echo '<a href="index.php?act=comments&amp;gid=' . $data['photo_id'] . '&amp;' . SID . '">Комментарии</a> (' . $data['photo_comments'] . ')';
  262. echo '</div>';
  263. }
  264. // if (!empty($moder)) {echo '<br /><input type="submit" value="Удалить выбранное" /></form>';}
  265. page_strnavigation('index.php?act=album&amp;uz=' . $uz . '&amp;', $config['fotolist'], $start, $total);
  266.  
  267. echo 'Всего фотографий: <b>' . $total . '</b><br /><br />';
  268. } else {
  269. show_error('Фотографии еще не загружены!');
  270. }
  271.  
  272. echo '<img src="../images/img/reload.gif" alt="image" /> <a href="index.php?act=gallery&amp;' . SID . '">Альбомы</a><br />';
  273. echo '<img src="../images/img/back.gif" alt="image" /> <a href="index.php?' . SID . '">Галерея</a><br />';
  274. break;
  275. # ###########################################################################################
  276. # # Форма загрузки фото ##
  277. # ###########################################################################################
  278. case 'addphoto':
  279.  
  280. $config['newtitle'] = 'Добавление фотографии';
  281.  
  282. if (is_user()) {
  283. echo '<div class="form">';
  284. echo '<form action="index.php?act=add&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '" method="post" enctype="multipart/form-data">';
  285. echo 'Прикрепить фото:<br /><input type="file" name="photo" /><br />';
  286. echo 'Название: <br /><input type="text" name="title" /><br />';
  287. echo 'Подпись к фото: <br /><textarea cols="25" rows="3" name="text"></textarea><br />';
  288.  
  289. echo 'Закрыть комментарии: <input name="closed" type="checkbox" value="1" /><br />';
  290.  
  291. echo '<input type="submit" value="Добавить" /></form></div><br />';
  292.  
  293. echo 'Разрешается добавлять фотки с расширением jpg, jpeg, gif и png<br />';
  294. echo 'Весом не более ' . formatsize($config['filesize']) . ' и размером от 100 до ' . (int)$config['filefoto'] . ' px<br /><br />';
  295. } else {
  296. show_login('Вы не авторизованы, чтобы добавить фотографию, необходимо');
  297. }
  298.  
  299. echo '<img src="../images/img/back.gif" alt="image" /> <a href="index.php?start=' . $start . '&amp;' . SID . '">Вернуться</a><br />';
  300. break;
  301. # ###########################################################################################
  302. # # Загрузка фото ##
  303. # ###########################################################################################
  304. case 'add':
  305.  
  306. $config['newtitle'] = 'Результат добавления';
  307.  
  308. $uid = check($_GET['uid']);
  309. $title = check($_POST['title']);
  310. $text = check($_POST['text']);
  311. $closed = (empty($_POST['closed'])) ? 0 : 1;
  312.  
  313. if (is_user()) {
  314. if ($uid == $_SESSION['token']) {
  315. if (is_uploaded_file($_FILES['photo']['tmp_name'])) {
  316. if (utf_strlen($title) >= 5 && utf_strlen($title) < 50) {
  317. if (utf_strlen($text) >= 5 && utf_strlen($text) < 1000) {
  318. $photoname = check(strtolower($_FILES['photo']['name']));
  319. $photosize = getimagesize($_FILES['photo']['tmp_name']);
  320. $ext = strrchr($photoname, '.');
  321.  
  322. if ($ext == '.jpg' || $ext == '.jpeg' || $ext == '.gif' || $ext == '.png') {
  323. if ($_FILES['photo']['size'] > 0 && $_FILES['photo']['size'] <= $config['filesize']) {
  324. if ($photosize[0] <= $config['filefoto'] && $photosize[1] <= $config['filefoto'] && $photosize[0] >= 100 && $photosize[1] >= 100) {
  325. if (is_quarantine($log)) {
  326. if (is_flood($log)) {
  327. $text = no_br($text);
  328. $text = antimat($text);
  329. $text = smiles($text);
  330.  
  331. DB :: $dbh -> query("INSERT INTO `photo` (`photo_user`, `photo_title`, `photo_text`, `photo_link`, `photo_time`, `photo_closed`) VALUES (?, ?, ?, ?, ?, ?);", array($log, $title, $text, '', SITETIME, $closed));
  332.  
  333. $lastid = DB :: $dbh -> lastInsertId();
  334. $link = $lastid . $ext;
  335.  
  336. DB :: $dbh -> query("UPDATE `photo` SET `photo_link`=? WHERE `photo_id`=?", array($link, $lastid));
  337.  
  338. move_uploaded_file($_FILES['photo']['tmp_name'], BASEDIR . 'gallery/pictures/' . $link);
  339. chmod(BASEDIR . 'gallery/pictures/' . $link, 0666);
  340.  
  341. $_SESSION['note'] = 'Фотография успешно загружена!';
  342. header ("Location: index.php?" . SID);
  343. exit;
  344. } else {
  345. show_error('Антифлуд! Вы слишком часто добавляете фотографии!');
  346. }
  347. } else {
  348. show_error('Карантин! Вы не можете добавлять фото в течении ' . round($config['karantin'] / 3600) . ' часов!');
  349. }
  350. } else {
  351. show_error('Ошибка! Размер изображение должен быть от 100 до ' . $config['filefoto'] . 'px');
  352. }
  353. } else {
  354. show_error('Ошибка! Вес изображения должен быть не более ' . formatsize($config['filesize']));
  355. }
  356. } else {
  357. show_error('Ошибка! Недопустимое расширение (Разрешено jpg, jpeg, gif и png)!');
  358. }
  359. } else {
  360. show_error('Слишком длинное или короткое описание (Необходимо от 5 до 1000 символов)!');
  361. }
  362. } else {
  363. show_error('Слишком длинное или короткое название (Необходимо от 5 до 50 символов)!');
  364. }
  365. } else {
  366. show_error('Ошибка! Не удалось загрузить изображение!');
  367. }
  368. } else {
  369. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  370. }
  371. } else {
  372. show_login('Вы не авторизованы, чтобы добавить фотографию, необходимо');
  373. }
  374.  
  375. echo '<img src="../images/img/back.gif" alt="image" /> <a href="index.php?act=addphoto&amp;' . SID . '">Вернуться</a><br />';
  376. break;
  377. # ###########################################################################################
  378. # # Редактирование фото ##
  379. # ###########################################################################################
  380. case 'edit':
  381.  
  382. if (is_user()) {
  383. $queryphoto = DB :: $dbh -> query("SELECT * FROM `photo` WHERE `photo_id`=? AND `photo_user`=? LIMIT 1;", array($gid, $log));
  384. $photo = $queryphoto -> fetch();
  385.  
  386. if (!empty($photo)) {
  387. $photo['photo_text'] = nosmiles($photo['photo_text']);
  388. $photo['photo_text'] = str_replace('<br />', "\r\n", $photo['photo_text']);
  389.  
  390. echo '<div class="form">';
  391. echo '<form action="index.php?act=change&amp;gid=' . $gid . '&amp;start=' . $start . '&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '" method="post">';
  392. echo 'Название: <br /><input type="text" name="title" value="' . $photo['photo_title'] . '" /><br />';
  393. echo 'Подпись к фото: <br /><textarea cols="25" rows="3" name="text">' . $photo['photo_text'] . '</textarea><br />';
  394.  
  395. echo 'Закрыть комментарии: ';
  396. $checked = ($photo['photo_closed'] == 1) ? ' checked="checked"' : '';
  397. echo '<input name="closed" type="checkbox" value="1"' . $checked . ' /><br />';
  398.  
  399. echo '<input type="submit" value="Изменить" /></form></div><br />';
  400. } else {
  401. show_error('Ошибка! Фотография удалена или вы не автор этой фотографии!');
  402. }
  403. } else {
  404. show_login('Вы не авторизованы, чтобы редактировать фотографию, необходимо');
  405. }
  406.  
  407. echo '<img src="../images/img/reload.gif" alt="image" /> <a href="index.php?act=album&amp;uz=' . $uz . '&amp;start=' . $start . '&amp;' . SID . '">Альбом</a><br />';
  408. echo '<img src="../images/img/back.gif" alt="image" /> <a href="index.php?' . SID . '">Галерея</a><br />';
  409. break;
  410. # ###########################################################################################
  411. # # Изменение описания ##
  412. # ###########################################################################################
  413. case 'change':
  414.  
  415. $uid = check($_GET['uid']);
  416. $title = check($_POST['title']);
  417. $text = check($_POST['text']);
  418. $closed = (empty($_POST['closed'])) ? 0 : 1;
  419.  
  420. if ($uid == $_SESSION['token']) {
  421. if (is_user()) {
  422. $queryphoto = DB :: $dbh -> query("SELECT * FROM `photo` WHERE `photo_id`=? AND `photo_user`=? LIMIT 1;", array($gid, $log));
  423. $photo = $queryphoto -> fetch();
  424.  
  425. if (!empty($photo)) {
  426. if (utf_strlen($title) >= 5 && utf_strlen($title) < 50) {
  427. if (utf_strlen($text) >= 5 && utf_strlen($text) < 1000) {
  428. $text = no_br($text);
  429. $text = antimat($text);
  430. $text = smiles($text);
  431.  
  432. DB :: $dbh -> query("UPDATE `photo` SET `photo_title`=?, `photo_text`=?, `photo_closed`=? WHERE `photo_id`=?;", array($title, $text, $closed, $gid));
  433.  
  434. $_SESSION['note'] = 'Фотография успешно отредактирована!';
  435. header ("Location: index.php?act=album&uz=$uz&start=$start&" . SID);
  436. exit;
  437. } else {
  438. show_error('Ошибка! Слишком длинное или короткое описание!');
  439. }
  440. } else {
  441. show_error('Ошибка! Слишком длинное или короткое название!');
  442. }
  443. } else {
  444. show_error('Ошибка! Фотография удалена или вы не автор этой фотографии!');
  445. }
  446. } else {
  447. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  448. }
  449. } else {
  450. show_login('Вы не авторизованы, чтобы редактировать фотографию, необходимо');
  451. }
  452.  
  453. echo '<img src="../images/img/reload.gif" alt="image" /> <a href="index.php?act=edit&amp;gid=' . $gid . '&amp;start=' . $start . '&amp;' . SID . '">Вернуться</a><br />';
  454. echo '<img src="../images/img/back.gif" alt="image" /> <a href="index.php?' . SID . '">Галерея</a><br />';
  455. break;
  456. # ###########################################################################################
  457. # # Добавление комментариев ##
  458. # ###########################################################################################
  459. case 'comments':
  460.  
  461. $queryphoto = DB :: $dbh -> query("SELECT * FROM `photo` WHERE `photo_id`=? LIMIT 1;", array($gid));
  462. $photo = $queryphoto -> fetch();
  463.  
  464. if (!empty($photo)) {
  465. $config['newtitle'] = 'Комментарии - ' . $photo['photo_title'];
  466.  
  467. echo '<img src="../images/img/gallery.gif" alt="image" /> <b>' . $photo['photo_title'] . '</b><br /><br />';
  468.  
  469. echo '<a href="#down"><img src="../images/img/downs.gif" alt="image" /></a> ';
  470. echo '<a href="index.php?act=comments&amp;gid=' . $gid . '&amp;rand=' . mt_rand(100, 999) . '&amp;' . SID . '">Обновить</a><hr />';
  471.  
  472. $total = DB :: $dbh -> querySingle("SELECT count(*) FROM `commphoto` WHERE `commphoto_gid`=?;", array($gid));
  473.  
  474. if ($total > 0) {
  475. if ($start >= $total) {
  476. $start = 0;
  477. }
  478.  
  479. $is_admin = is_admin(array(101, 102, 103, 105));
  480. if ($is_admin) {
  481. echo '<form action="index.php?act=delcomm&amp;gid=' . $gid . '&amp;start=' . $start . '&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '" method="post">';
  482. }
  483.  
  484. $querycomm = DB :: $dbh -> query("SELECT * FROM `commphoto` WHERE `commphoto_gid`=? ORDER BY `commphoto_time` DESC LIMIT " . $start . ", " . $config['postgallery'] . ";", array($gid));
  485.  
  486. while ($data = $querycomm -> fetch()) {
  487. echo '<div class="b">';
  488. echo '<div class="img">';
  489.  
  490. if ($is_admin) {
  491. echo '<input type="checkbox" name="del[]" value="' . $data['commphoto_id'] . '" /> ';
  492. }
  493.  
  494. echo user_avatars($data['commphoto_user']) . '</div>';
  495.  
  496. echo '<b><a href="../pages/anketa.php?uz=' . $data['commphoto_user'] . '&amp;' . SID . '">' . nickname($data['commphoto_user']) . '</a></b> <small>(' . date_fixed($data['commphoto_time']) . ')</small><br />';
  497. echo user_title($data['commphoto_user']) . ' ' . user_online($data['commphoto_user']) . '</div>';
  498.  
  499. echo '<div>' . bb_code($data['commphoto_text']) . '<br />';
  500.  
  501. if (is_admin() || empty($config['anonymity'])) {
  502. echo '<span class="data">(' . $data['commphoto_brow'] . ', ' . $data['commphoto_ip'] . ')</span>';
  503. }
  504.  
  505. echo '</div>';
  506. }
  507.  
  508. if ($is_admin) {
  509. echo '<br /><input type="submit" value="Удалить выбранное" /></form>';
  510. }
  511.  
  512. page_jumpnavigation('index.php?act=comments&amp;gid=' . $gid . '&amp;', $config['postgallery'], $start, $total);
  513. page_strnavigation('index.php?act=comments&amp;gid=' . $gid . '&amp;', $config['postgallery'], $start, $total);
  514. } else {
  515. show_error('Комментариев еще нет!');
  516. }
  517.  
  518. if (is_user()) {
  519. if (empty($photo['photo_closed'])) {
  520. echo '<div class="form">';
  521. echo '<form action="index.php?act=addcomm&amp;gid=' . $gid . '&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '" method="post">';
  522. echo '<b>Сообщение:</b><br />';
  523. echo '<textarea cols="25" rows="3" name="msg"></textarea><br />';
  524. echo '<input type="submit" value="Написать" /></form></div><br />';
  525.  
  526. echo '<a href="#up"><img src="../images/img/ups.gif" alt="image" /></a> ';
  527. echo '<a href="../pages/rules.php?' . SID . '">Правила</a> / ';
  528. echo '<a href="../pages/smiles.php?' . SID . '">Смайлы</a> / ';
  529. echo '<a href="../pages/tegi.php?' . SID . '">Теги</a><br /><br />';
  530. } else {
  531. show_error('Комментирование данной фотографии закрыто!');
  532. }
  533. } else {
  534. show_login('Вы не авторизованы, чтобы добавить сообщение, необходимо');
  535. }
  536.  
  537. echo '<img src="../images/img/reload.gif" alt="image" /> <a href="index.php?act=album&amp;uz=' . $photo['photo_user'] . '&amp;' . SID . '">Альбом</a><br />';
  538. } else {
  539. show_error('Ошибка! Данного изображение не существует!');
  540. }
  541.  
  542. echo '<img src="../images/img/back.gif" alt="image" /> <a href="index.php?' . SID . '">Галерея</a><br />';
  543. break;
  544. # ###########################################################################################
  545. # # Запись комментариев ##
  546. # ###########################################################################################
  547. case 'addcomm':
  548.  
  549. $uid = check($_GET['uid']);
  550. $msg = check($_POST['msg']);
  551.  
  552. $config['newtitle'] = 'Добавление комментария';
  553.  
  554. if (is_user()) {
  555. if ($uid == $_SESSION['token']) {
  556. if (utf_strlen($msg) >= 5 && utf_strlen($msg) < 1000) {
  557. $queryphoto = DB :: $dbh -> query("SELECT * FROM `photo` WHERE `photo_id`=? LIMIT 1;", array($gid));
  558. $data = $queryphoto -> fetch();
  559.  
  560. if (!empty($data)) {
  561. if (empty($data['photo_closed'])) {
  562. if (is_quarantine($log)) {
  563. if (is_flood($log)) {
  564. $msg = no_br($msg);
  565. $msg = antimat($msg);
  566. $msg = smiles($msg);
  567.  
  568. DB :: $dbh -> query("INSERT INTO `commphoto` (`commphoto_gid`, `commphoto_text`, `commphoto_user`, `commphoto_time`, `commphoto_ip`, `commphoto_brow`) VALUES (?, ?, ?, ?, ?, ?);", array($gid, $msg, $log, SITETIME, $ip, $brow));
  569.  
  570. DB :: $dbh -> query("DELETE FROM `commphoto` WHERE `commphoto_gid`=? AND `commphoto_time` < (SELECT MIN(`commphoto_time`) FROM (SELECT `commphoto_time` FROM `commphoto` WHERE `commphoto_gid`=? ORDER BY `commphoto_time` DESC LIMIT " . $config['maxpostgallery'] . ") AS del);", array($gid, $gid));
  571.  
  572. DB :: $dbh -> query("UPDATE `photo` SET `photo_comments`=`photo_comments`+1 WHERE `photo_id`=?;", array($gid));
  573. DB :: $dbh -> query("UPDATE `users` SET `users_allcomments`=`users_allcomments`+1, `users_point`=`users_point`+1, `users_money`=`users_money`+5 WHERE `users_login`=?", array($log));
  574.  
  575. $_SESSION['note'] = 'Сообщение успешно добавлено!';
  576. header("location: index.php?act=comments&gid=$gid&" . SID);
  577. exit;
  578. } else {
  579. show_error('Антифлуд! Разрешается отправлять сообщения раз в ' . flood_period() . ' секунд!');
  580. }
  581. } else {
  582. show_error('Карантин! Вы не можете писать в течении ' . round($config['karantin'] / 3600) . ' часов!');
  583. }
  584. } else {
  585. show_error('Ошибка! Комментирование данной фотографии запрещено!');
  586. }
  587. } else {
  588. show_error('Ошибка! Данного изображения не существует!');
  589. }
  590. } else {
  591. show_error('Ошибка! Слишком длинное или короткое сообщение!');
  592. }
  593. } else {
  594. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  595. }
  596. } else {
  597. show_login('Вы не авторизованы, чтобы добавить сообщение, необходимо');
  598. }
  599.  
  600. echo '<img src="../images/img/back.gif" alt="image" /> <a href="index.php?act=comments&amp;gid=' . $gid . '&amp;' . SID . '">Вернуться</a><br />';
  601. echo '<img src="../images/img/reload.gif" alt="image" /> <a href="index.php?' . SID . '">В галерею</a><br />';
  602. break;
  603. # ###########################################################################################
  604. # # Удаление комментариев ##
  605. # ###########################################################################################
  606. case 'delcomm':
  607.  
  608. $uid = check($_GET['uid']);
  609. if (isset($_POST['del'])) {
  610. $del = intar($_POST['del']);
  611. } else {
  612. $del = 0;
  613. }
  614.  
  615. if (is_admin()) {
  616. if ($uid == $_SESSION['token']) {
  617. if (!empty($del)) {
  618. $del = implode(',', $del);
  619.  
  620. $delcomments = DB :: $dbh -> exec("DELETE FROM commphoto WHERE commphoto_id IN (" . $del . ") AND commphoto_gid=" . $gid . ";");
  621. DB :: $dbh -> query("UPDATE photo SET photo_comments=photo_comments-? WHERE photo_id=?;", array($delcomments, $gid));
  622.  
  623. $_SESSION['note'] = 'Выбранные сообщения успешно удалены!';
  624. header ("Location: index.php?act=comments&gid=$gid&start=$start&" . SID);
  625. exit;
  626. } else {
  627. show_error('Ошибка! Отстутствуют выбранные сообщения для удаления!');
  628. }
  629. } else {
  630. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  631. }
  632. } else {
  633. show_error('Ошибка! Удалять сообщения могут только модераторы!');
  634. }
  635.  
  636. echo '<img src="../images/img/back.gif" alt="image" /> <a href="index.php?act=comments&amp;gid=' . $gid . '&amp;' . SID . '">Вернуться</a><br />';
  637. break;
  638. # ###########################################################################################
  639. # # Удаление фотографий ##
  640. # ###########################################################################################
  641. case 'delphoto':
  642.  
  643. $uid = check($_GET['uid']);
  644.  
  645. if (is_user()) {
  646. if ($uid == $_SESSION['token']) {
  647. if (is_writeable(BASEDIR . 'gallery/pictures')) {
  648. $querydel = DB :: $dbh -> queryfetch("SELECT `photo_id`, `photo_link`, `photo_comments` FROM `photo` WHERE `photo_id`=? AND `photo_user`=? LIMIT 1;", array($gid, $log));
  649. if (!empty($querydel)) {
  650. if (empty($querydel['photo_comments'])) {
  651. DB :: $dbh -> query("DELETE FROM `photo` WHERE `photo_id`=? LIMIT 1;", array($querydel['photo_id']));
  652. DB :: $dbh -> query("DELETE FROM `commphoto` WHERE `commphoto_gid`=?;", array($querydel['photo_id']));
  653. if (file_exists(BASEDIR . 'gallery/pictures/' . $querydel['photo_link'])) {
  654. unlink(BASEDIR . 'gallery/pictures/' . $querydel['photo_link']);
  655. }
  656.  
  657. $_SESSION['note'] = 'Фотография успешно удалена!';
  658. header ("Location: index.php?act=album&start=$start&" . SID);
  659. exit;
  660. } else {
  661. show_error('Ошибка! Запрещено удалять фотографии к которым имеются комментарии!');
  662. }
  663. } else {
  664. show_error('Ошибка! Данная фотография не существует или вы не автор этой фотографии!');
  665. }
  666. } else {
  667. show_error('Ошибка! Не установлены атрибуты доступа на дирекоторию с фотографиями!');
  668. }
  669. } else {
  670. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  671. }
  672. } else {
  673. show_login('Вы не авторизованы, чтобы удалять фотографии, необходимо');
  674. }
  675.  
  676. echo '<img src="../images/img/back.gif" alt="image" /> <a href="index.php?act=album&amp;start=' . $start . '&amp;' . SID . '">Вернуться</a><br />';
  677. break;
  678. # ###########################################################################################
  679. # # Удаление фотографий ##
  680. # ###########################################################################################
  681. /**
  682. * case 'delphoto':
  683. *
  684. * $uid = check($_GET['uid']);
  685. * if (isset($_POST['del'])) {$del = intar($_POST['del']);} else {$del = 0;}
  686. *
  687. * if (is_user()){
  688. * if ($uid==$_SESSION['token']){
  689. * if (!empty($del)){
  690. *
  691. * $del = implode(',', $del);
  692. *
  693. * if (is_writeable(BASEDIR.'gallery/pictures')){
  694. *
  695. * $querydel = DB::$dbh->query("SELECT `photo_id`, `photo_link` FROM `photo` WHERE `photo_id` IN (".$del.") AND `photo_user`=?;", array($log));
  696. * $arr_photo = $querydel->fetchAll();
  697. *
  698. * if (count($arr_photo)>0){
  699. * foreach ($arr_photo as $delete){
  700. * DB::$dbh->query("DELETE FROM `photo` WHERE `photo_id`=? LIMIT 1;", array($delete['photo_id']));
  701. * DB::$dbh->query("DELETE FROM `commphoto` WHERE `commphoto_gid`=?;", array($delete['photo_id']));
  702. * if (file_exists(BASEDIR.'gallery/pictures/'.$delete['photo_link'])) {unlink(BASEDIR.'gallery/pictures/'.$delete['photo_link']);}
  703. * }
  704. *
  705. * $_SESSION['note'] = 'Выбранные фотографии успешно удалены!';
  706. * header ("Location: index.php?act=album&start=$start&".SID); exit;
  707. *
  708. * } else {show_error('Ошибка! Данных фотографий не существует или вы не автор этих фотографий!');}
  709. * } else {show_error('Ошибка! Не установлены атрибуты доступа на дирекоторию с фотографиями!');}
  710. * } else {show_error('Ошибка! Отсутствуют выбранные фотографии!');}
  711. * } else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}
  712. * } else {show_login('Вы не авторизованы, чтобы удалять фотографии, необходимо');}
  713. *
  714. * echo '<img src="../images/img/back.gif" alt="image" /> <a href="index.php?act=album&amp;start='.$start.'&amp;'.SID.'">Вернуться</a><br />';
  715. * break;
  716. */
  717.  
  718. default:
  719. header("location: index.php?" . SID);
  720. endswitch;
  721.  
  722. echo '<img src="../images/img/homepage.gif" alt="image" /> <a href="../index.php?' . SID . '">На главную</a>';
  723.  
  724. include_once ('../themes/' . $config['themes'] . '/foot.php');
  725.  
  726. ?>