Файл: CMS/core/admin/gallery.php
Строк: 121
<?php
if (!defined('CMS')) { die('Access Denied!'); }
if (is_admin()) {
if (!empty($_GET['restatement'])) {
if (is_admin(array(101))) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
$db->query("UPDATE ?_users_photos SET `photo_comments` = (SELECT COUNT(1) FROM ?_comments WHERE ?_users_photos.`photo_id` = ?_comments.`comm_post` AND ?_comments.`comm_type` = 'gallery');");
$db->query("UPDATE ?_users_battle SET `battle_comm` = (SELECT COUNT(1) FROM ?_comments WHERE ?_users_battle.`battle_id` = ?_comments.`comm_post` AND ?_comments.`comm_type` = 'battle');");
$inSes->addMessage('Комментарии успешно пересчитаны!', 'ok');
redirect('?m=gallery&page=' . $page . '&' . RND);
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
else $inSes->addMessage('Ошибка! Пересчитывать комментарии могут только суперадмины!');
}
if (!empty($_POST['del'])) {
$del = intar($_POST['del']);
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (!empty($del)) {
$del = is_array($del) ? $del : array($del);
$del = implode(',', $del);
if (is_writeable(ROOTPATH.'/upload/pictures') ) {
$arr_photo = $db->select("SELECT * FROM ?_users_photos WHERE `photo_id` IN (" . $del . ");");
if (count($arr_photo) > 0) {
foreach ($arr_photo as $delete) {
$db->query("DELETE FROM ?_users_photos WHERE `photo_id` = ? LIMIT 1;", $delete['photo_id']);
$db->query("DELETE FROM ?_users_photos_rated WHERE `rated_photo` = ? LIMIT 1;", $delete['photo_id']);
$db->query("DELETE FROM ?_users_battle_rated WHERE `rated_photo` = ? LIMIT 1;", $delete['photo_id']);
$db->query("DELETE FROM ?_comments
WHERE (`comm_type` = 'gallery' OR `comm_type` = 'battle')
AND `comm_post` = ?;", $delete['photo_id']);
$db->query("DELETE FROM ?_users_battle
WHERE `battle_photo_1` = ? OR `battle_photo_2` = ?", $delete['photo_id'], $delete['photo_id']);
unlink_image('upload/pictures/', $delete['photo_link']);
}
$db->query("OPTIMIZE TABLE ?_users_photos, ?_users_photos_rated, ?_comments, ?_users_battle, ?_users_battle_rated;");
$inSes->addMessage('Выбранные фотографии успешно удалены!', 'ok');
redirect('?m=gallery&page=' . $page . '&' . RND);
}
else $inSes->addMessage('Ошибка! Данных фотографий не существует!');
}
else $inSes->addMessage('Ошибка! Не установлены атрибуты доступа на дирекоторию с фотографиями!');
}
else $inSes->addMessage('Ошибка! Отсутствуют выбранные фотографии!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
switch ($mod):
default:
show_header('Управление галереей');
echo '<div class="b">';
echo '<a href="#down">' . icon('down.png') . '</a> ';
echo '<a href="?m=gallery&page=' . $page . '&' . RND . '">Обновить</a> | ';
echo '<a href="../gallery/' . gen_uri('addphoto', '', RND) . '">Добавить фото</a> | ';
echo '<a href="../gallery/' . gen_uri('index', '', RND) . '">Обзор</a><br /></div>';
$onpage = !empty($config['photos_num']) ? num($config['photos_num']) : 10;
if ($page > 1) $from = ($page - 1) * $onpage; else $from = 0;
$rows = $db->selectPage( $total, "SELECT * FROM ?_users_photos
ORDER BY `photo_time` DESC
LIMIT ?d, ?d", $from, $onpage);
if (!empty($rows) && $total > 0) {
echo '<form action="?m=gallery&page=' . $page . '&rnd=' . $_SESSION['token'] . '" method="post" name="gallery">';
foreach($rows as $row) {
$size = read_file( ROOTPATH . '/upload/pictures/' . $row['photo_link'] );
echo '<div class="b"><table><tr><td width="30%"><div id="gallery">';
echo '<a href="/gallery/' . gen_uri('photo', $row['photo_id'], 'page=' . $page . '&' . RND) . '">';
echo resize_image('upload/pictures/', $row['photo_link'], $config['preview_size'], $row['photo_title']) . '</a></div></td>';
echo '<td valign="top" width="70%" style="padding:5px;">' . icon('photos.png', 'icons');
echo '<b><a href="/gallery/' . gen_uri('photo', $row['photo_id'], 'page=' . $page . '&' . RND) . '">'.$row['photo_title'].'</a></b> (' . $size . ') (' . format_num($row['photo_rating']) . ')<br />';
if (!empty($row['photo_text'])) {
echo bb_code($row['photo_text']).'<br />';
}
echo '<input type="checkbox" name="del[]" value="' . $row['photo_id'] . '" /> ';
echo '<a href="?m=edit_photos&page=' . $page . '&id=' . $row['photo_id'] . '&' . RND . '">Редактировать</a><br />';
if ($row['photo_battle'] == 1) echo '<b>Участвует на битвах</b><br />';
echo 'Добавлено: ' . users_anketa($row['photo_user']) . ' (' . get_date($row['photo_time']) . ')<br />';
echo '<a href="/gallery/' . gen_uri('photo', $row['photo_id'], 'page=' . $page . '#comm') . '">Комментарии</a> (' . $row['photo_comments'] . ')';
echo '</td></tr></table></div>';
}
echo '<div class="b">';
echo '<input type="checkbox" name="master_box" title="Отметить всё" onclick="javascript:ckeck_uncheck_all()">';
echo '<input type="submit" class="btns" value="Удалить выбранное" /></div></form>';
echo show_pages('?m=gallery');
echo '<div class="b">Всего фотографий: <b>' . $total . '</b><br /></div>';
}
else {
show_error('Фотографий еще нет!');
}
if (is_admin(array(101))) {
echo '<div class="b">' . icon('mail.png');
echo '<a href="?m=gallery&restatement=1&rnd=' . $_SESSION['token'] . '">Пересчитать</a> | ';
echo '<a href="?m=set_gallery&' . RND . '">Настройки</a><br /></div>';
}
echo <<<JSCRIPT
<script language='JavaScript' type="text/javascript">
<!--
function ckeck_uncheck_all() {
var frm = document.gallery;
if(frm.master_box.checked == true){ frm.master_box.checked = false; }
else{ frm.master_box.checked = true; }
for (var i=0;i<frm.elements.length;i++) {
var elmnt = frm.elements[i];
if (elmnt.type=='checkbox') {
if(frm.master_box.checked == true){ elmnt.checked=false; }
else{ elmnt.checked=true; }
}
}
}
-->
</script>
JSCRIPT;
break;
case 'edit_photos':
$photo = $db->selectRow("SELECT * FROM ?_users_photos WHERE `photo_id` = ? LIMIT 1;", $id);
if (!empty($photo)) {
if (!empty($_POST['cancel'])) {
redirect('?m=gallery&' . RND);
}
if (!empty($_POST['submit'])) {
$title = !empty($_POST['title']) ? check($_POST['title']) : '';
$text = !empty($_POST['text']) ? check($_POST['text']) : '';
$closed = !empty($_POST['closed']) ? 1 : 0;
$battle = !empty($_POST['battle']) ? 1 : 0;
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (cms_strlen($title) >= 3 && cms_strlen($title) <= 50) {
if (cms_strlen($text) <= 1000) {
$text = antimat($text);
$text = smiles($text);
$db->query("UPDATE ?_users_photos SET `photo_title` = ?, `photo_text` = ?, `photo_battle` = ?, `photo_closed` = ?
WHERE `photo_id` = ?;", $title, $text, $battle, $closed, $id);
$inSes->addMessage('Фотография успешно отредактирована!', 'ok');
redirect('?m=gallery&' . RND);
}
else $inSes->addMessage('Ошибка! Слишком длинное описание (Необходимо до 1000 символов)!');
}
else $inSes->addMessage('Ошибка! Слишком длинное или короткое название!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
show_header('Редактирование фотографии');
$photo['photo_text'] = str_replace('<br />', "n", nosmiles($photo['photo_text']));
$form = new cmsForm('?m=edit_photos&id=' . $id . '&rnd=' . $_SESSION['token'] . '&' . RND, 'post');
$form->addText('Название:', 'title', $photo['photo_title']);
$form->addTextarea('Подпись к фото:', 'text', $photo['photo_text']);
$form->addCheckBox('Участвует в фото-битвах:', 'battle', $photo['photo_battle']);
$form->addCheckBox('Закрыть комментарии:', 'closed', $photo['photo_closed']);
echo $form->Submit(array('Изменить','Отмена'), array('submit','cancel'));
unset($form);
echo '<div class="b">' . icon('return.png');
echo '<a href="?m=gallery&' . RND . '">Вернуться</a></div>';
}
else {
$inSes->addMessage('Ошибка! Данной фотографии не существует!');
redirect('?m=gallery&' . RND);
}
break;
endswitch;
echo '<div class="b">' . icon('return.png') . ' <a href="?' . RND . '">В админку</a><br /></div>';
show_footer();
}
else {
redirect('/?' . RND);
}
?>