Файл: CMS/gallery/index.php
Строк: 432
<?php
define('CMS',TRUE);
define('ROOT','../');
include('../core/inc.php');
$is_admin = is_admin() ? true : false;
$error = '';
$id = !empty($_GET['id']) ? (int) $_GET['id'] : 0;
$mod = !empty($_GET['m']) ? (string) $_GET['m'] : '';
$page = !empty($_GET['page']) ? (int) $_GET['page'] : 1;
switch ($mod):
default:
show_header('Галерея сайта');
echo '<div class="b">';
echo '<a href="#down">' . icon('down.png') . '</a> ';
if ($is_logged) {
echo '<a href="' . gen_users($log, 'album', '', RND) . '">Мои фото</a> | ';
}
echo '<a href="' . gen_uri('albums', '', RND) . '">Все альбомы</a>';
if (is_admin()) {
echo ' | <a href="' . gen_admin('?m=gallery&page=' . $page . '&' . RND) . '">Управление</a>';
}
echo '<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) {
foreach($rows as $row) {
$size = read_file( ROOTPATH . '/upload/pictures/' . $row['photo_link'] );
echo '<div class="b"><table><tr>';
echo '<td width="20%"><div id="gallery"><a href="' . 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="' . gen_uri('photo', $row['photo_id'], 'page=' . $page . '&' . RND) . '">'.$row['photo_title'].'</a></b> (' . $size . ')<br />';
if (!empty($row['photo_text'])) {
echo bb_code($row['photo_text']).'<br />';
}
echo 'Добавлено: ' . users_anketa($row['photo_user']) . ' (' . get_date($row['photo_time']) . ')<br />';
echo '<a href="' . gen_uri('photo', $row['photo_id'], 'page=' . $page . '#comm') . '">Комментарии</a> (' . $row['photo_comments'] . ')';
echo '</td></tr></table></div>';
}
echo show_pages('index', RND, 'p');
echo '<div class="b">Всего фотографий: <b>' . $total . '</b><br /></div>';
}
else {
show_error('Фотографий нет, будь первым!');
}
echo '<div class="b">';
echo '<a href="#up">' . icon('up.png') . '</a> ';
echo '<a href="' . gen_uri('search', '', RND) . '">Поиск</a> | ';
echo '<a href="' . gen_uri('top', '', RND) . '">Топ фото</a> | ';
echo '<a href="' . gen_uri('addphoto', '', RND) . '">Добавить фото</a> | ';
echo '<a href="' . gen_uri('battles', '', RND) . '">Фото-Битвы</a><br /></div>';
break;
case 'search':
$q = !empty($_REQUEST['q']) ? (string) $_REQUEST['q'] : '';
$logic = !empty($_REQUEST['logic']) ? (string) $_REQUEST['logic'] : 'or';
$lang['OR'] = 'или';
$lang['AND'] = 'и';
$lang['SEARCH_WORD'] = '«%s»';
$error = '';
if (!empty($_REQUEST['q'])) {
if (!in_array($logic, array('and', 'or'))) {
$logic = 'or';
}
$logic = strtoupper( $logic );
$q = preg_replace('#[^a-zA-Zа-яА-Я0-9 -_@:;()+=.,&*!?<>#$"'/\]#siu', '', $q);
$q = preg_replace('/s/u', ' ', $q);
$q = preg_replace('/ {2,}/u', ' ', $q);
$q = strip_tags($q);
if (get_magic_quotes_gpc()) {
$q = stripslashes($q);
}
$q = trim( $q );
if ( $q == '' ) {
$inSes->addMessage('Произошла Ошибка! Вы не ввели запрос "Что искать?"');
gen_red('search', '', RND);
}
else {
$q = explode(' ', $q);
array_splice($q, 3);
$escape_array = array(
"x2a" => "", //*
"x22" => "", //"
"x2b" => "", //+
"x2d" => "", //-
"x7e" => "", //~
"x28" => "", //(
"x29" => "", //)
"x3c" => "", //<
"x3e" => "" //>
);
for($i = 0, $query = array(); $i < count( $q ); $i++) {
$query[] = sprintf($lang['SEARCH_WORD'], check($q[$i]));
$q[$i] = strtr($q[$i], $escape_array);
}
$query = implode(' ' . $lang[$logic] . ' ', $query);
for($i = 0, $part_of_query = '', $sep = ''; $i < count( $q ); $i++, $sep = $logic) {
$part_of_query .= $sep . " MATCH(`photo_title`,`photo_text`) AGAINST('" . mysql_escape_string($q[$i]) . "*' IN BOOLEAN MODE) ";
}
$onpage = !empty($config['news_num']) ? num($config['news_num']) : 10;
if ($page > 1) $from = ($page - 1) * $onpage; else $from = 0;
$rows = $db->selectPage( $total, "SELECT * FROM ?_users_photos
WHERE " . $part_of_query . "
ORDER BY `photo_time` DESC
LIMIT ?d, ?d", $from, $onpage);
if (!empty($rows) && $total > 0) {
$c = $from + 1;
$start = ($page - 1) * $onpage;
if ($start < 0) $start = 0;
if ($start > $total - 1) $start = $total - 1;
$stop = $start + $onpage;
if ($stop > $total) $stop = $total;
$v[] = '<div class="b">';
$v[] = '- Всего найдено: <strong>' . intval( $total ) . '</strong><br />';
$v[] = '- Показаны результаты с <strong>' . intval( $start + 1) . '</strong>';
$v[] = ' по <strong>' . intval( $stop ) . '</strong> место<br /></div>';
foreach( $rows as $row ) {
$size = read_file( ROOTPATH . '/upload/pictures/' . $row['photo_link'] );
$v[] = '<div class="b"><table><tr>';
$v[] = '<td width="20%"><div id="gallery"><a href="' . gen_uri('photo', $row['photo_id'], 'page=' . $page . '&' . RND) . '">';
$v[] = resize_image('upload/pictures/', $row['photo_link'], $config['preview_size'], $row['photo_title']) . '</a></div></td>';
$v[] = '<td valign="top" width="70%" style="padding:5px;">' . icon('photos.png', 'icons');
$v[] = '<b><a href="' . gen_uri('photo', $row['photo_id'], 'page=' . $page . '&' . RND) . '">'.$row['photo_title'].'</a></b> (' . $size . ')<br />';
if (!empty($row['photo_text'])) {
$v[] = bb_code($row['photo_text']).'<br />';
}
$v[] = 'Добавлено: ' . users_anketa($row['photo_user']) . ' (' . get_date($row['photo_time']) . ')<br />';
$v[] = '<a href="' . gen_uri('photo', $row['photo_id'], 'page=' . $page . '#comm') . '">Комментарии</a> (' . $row['photo_comments'] . ')';
$v[] = '</td></tr></table></div>';
}
show_header('Результаты поиска - ' . $query);
echo implode('',$v);
$_q = 'q=' . urlencode(implode(' ', $q));
$_q .= '&logic=' . strtolower($logic);
echo show_pages('search', $_q, 'p');
}
else {
show_header('Поиск фото по названию');
show_error('По вашему запросу ' . $query . ' ни чего не найдено!');
}
}
}
else {
show_header('Поиск фото по названию');
}
$form = new cmsForm(gen_uri('search', '', RND), 'post');
$form->addText('Ваш запрос:', 'q', request('q'));
$form->addRadio('', 'logic', strtolower($logic), array('and' => 'Все слова', 'or' => 'Любое из слов'));
echo $form->Submit('Искать');
unset($form);
echo '<div class="b">' . icon('return.png');
echo '<a href="' . gen_uri('index', '', RND) . '">Галерея</a> | ';
echo '<a href="' . gen_uri('top', '', RND) . '">Топ фото</a> | ';
echo '<a href="' . gen_uri('addphoto', '', RND) . '">Добавить фото</a> | ';
echo '<a href="' . gen_uri('battles', '', RND) . '">Фото-Битвы</a><br /></div>';
break;
case 'photo':
$prs = parse_url($_SERVER['REQUEST_URI']);
$row = $db->selectRow("SELECT *,
(SELECT COUNT(1) FROM ?_users_bookmarks WHERE `book_path` = ?) AS `bookmarks`
FROM ?_users_photos WHERE `photo_id` = ? LIMIT 1;", $prs['path'], $id);
if (!empty($row)) {
if (!empty($_GET['vote'])) {
if ($is_logged || $config['photos_vote_guest'] == 1) {
$vote = check($_GET['vote']);
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if ($vote == 'up' || $vote == 'down') {
$score = ($vote == 'up') ? 1 : -1;
if ($log <> $row['photo_user'] || $config['photos_vote_guest'] == 1) {
$_IP = check( $_SERVER['REMOTE_ADDR'] );
if ($is_logged) {
$is_rated = (int) $db->selectCell("SELECT `rated_id` FROM ?_users_photos_rated
WHERE `rated_photo` = ? AND `rated_user` = ? LIMIT 1;", $id, $log);
$nick = check($log);
}
else {
$is_rated = (int) $db->selectCell("SELECT `rated_id` FROM ?_users_photos_rated
WHERE `rated_photo` = ? AND `rated_ip` = ? LIMIT 1;", $id, $_IP);
$nick = $config['guest_name'];
}
if ($is_rated < 1) {
$expiresrated = SITE_TIME + 3600 * $config['photos_exprated'];
$db->query("DELETE FROM ?_users_photos_rated WHERE `rated_time` < ?;", SITE_TIME);
$db->query("INSERT INTO ?_users_photos_rated (`rated_photo`, `rated_user`, `rated_ip`, `rated_time`)
VALUES (?, ?, ?, ?);", $id, $nick, $_IP, $expiresrated);
$db->query("UPDATE ?_users_photos SET `photo_rating` = (`photo_rating` + ?) WHERE `photo_id` = ?;", $score, $id);
$inSes->addMessage('Ваша оценка принята! Рейтинг фотографии: ' . format_num($row['photo_rating'] + $score), 'ok');
}
else $inSes->addMessage('Ошибка! Вы уже оценивали данную фотографию!');
}
else $inSes->addMessage('Ошибка! Нельзя голосовать за свои фотографии!');
}
else $inSes->addMessage('Ошибка! Необходимо проголосовать за или против фотографии!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
else $inSes->addMessage('Ошибка! Вы не авторизованы! Голосовать могут только обитатели сайта!');
gen_red('photo', $id, RND);
}
if ($is_logged) {
if (!empty($_POST['submit'])) {
$msg = !empty($_POST['text']) ? check($_POST['text']) : '';
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (cms_strlen(trim($msg)) >= 5 && cms_strlen($msg) < 1000) {
if ($row['photo_closed'] <> 1) {
if (is_quarantine($log)) {
if (is_flood($log)) {
$msg = antimat($msg);
$msg = smiles($msg);
$date = date('Y-m-d H:i:s', SITE_TIME);
$db->query("INSERT INTO ?_comments SET `comm_post` = ?, `comm_text` = ?, `comm_author` = ?, `comm_type` = 'gallery', `comm_date` = ?, `comm_ip` = ?, `comm_ua` = ?", $id, $msg, $log, $date, $ip, $brow);
$db->query("UPDATE ?_users_photos SET `photo_comments` = (`photo_comments` + 1) WHERE `photo_id` = ?;", $id);
$db->query("UPDATE ?_users SET `users_allcomments` = (`users_allcomments` + 1), `users_point` = (`users_point` + ?), `users_money` = (`users_money` + ?) WHERE `users_login` = ?", $config['comm_add_point'], $config['comm_add_money'], $log);
$inSes->addMessage('Комментарий успешно добавлен!', 'ok');
gen_red('photo', $id, RND);
}
else $inSes->addMessage('Антифлуд! Разрешается отправлять сообщения раз в ' . flood_period() . ' секунд!');
}
else $inSes->addMessage('Карантин! Вы не можете писать в течении ' . round($config['karantin'] / 3600) . ' часов!');
}
else $inSes->addMessage('Ошибка! Комментирование данной фотографии запрещено!');
}
else $inSes->addMessage('Ошибка! Слишком длинное или короткое сообщение!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
if (!empty($_POST['del'])) {
if (is_admin()) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
$del = intar($_POST['del']);
if (!empty($del)) {
$del = is_array($del) ? $del : array($del);
$del = implode(',', $del);
$delcom = (int) $db->query("DELETE FROM ?_comments WHERE `comm_type` = 'gallery'
AND `comm_id` IN (" . $del . ") AND `comm_post` = ?", $id);
$db->query("UPDATE ?_users_photos SET `photo_comments` = (`photo_comments` - ?) WHERE `photo_id` = ?;",$delcom, $id);
$inSes->addMessage('Выбранные комментарии успешно удалены!', 'ok');
gen_red('photo', $id, RND);
}
else $inSes->addMessage('Ошибка! Отстутствуют выбранные комментарии для удаления!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
else $inSes->addMessage('Ошибка! Удалять комментарии могут только модераторы!');
}
}
show_header($row['photo_title']);
echo '<div class="b">' . icon('photos.png', 'icons');
echo '<b>' . $row['photo_title'] . '</b> (' . read_file( ROOTPATH . '/upload/pictures/' . $row['photo_link'] ) . ')';
if ($row['photo_user'] == $log) {
echo '<div style="float:right;margin-top:-14px;margin-right:3px;">';
echo '<br /><a href="' . gen_uri('edit', $row['photo_id'], 'page=' . $page . '&' . RND) . '">Редактировать</a>';
echo '</div>';
}
echo '</div><div class="b"><div id="gallery" style="max-width:240px;max-height:320px;">
<a href="' . $config['site_url'] . '/upload/pictures/' . $row['photo_link'] . '">
<img src="' . $config['site_url'] . '/upload/pictures/' . $row['photo_link'] . '" width="240" height="320" alt="' . $row['photo_title'] . '" /></a><br /></div>';
if (!empty($row['photo_text'])){
echo nl2br(bb_code($row['photo_text'])) . '<br />';
}
echo '<br />Рейтинг: <a href="' . gen_uri('photo', $id, 'vote=down&rnd=' . $_SESSION['token'] . '&' . RND) . '"><img src="../images/icons/1_14_down.png" alt="Минус" /></a> <big><b>' . format_num($row['photo_rating']) . '</b></big> <a href="' . gen_uri('photo', $id, 'vote=up&rnd=' . $_SESSION['token'] . '&' . RND) . '"><img src="../images/icons/1_14_up.png" alt="Плюс" /></a><br />';
echo 'Добавлено: ' . users_anketa($row['photo_user']) . ' (' . get_date($row['photo_time']) . ')<br /></div>';
echo show_bookmarks($row['photo_title'], '', $row['bookmarks']);
$comm_type = 'gallery';
$comm_url = 'photo';
// Подключили комменты
include( MODULES_PATH . 'comments.inc.php' );
if ($is_logged) {
if ($row['photo_closed'] == 1) {
show_error('Комментирование данной фотографии запрещено!');
}
else {
$form = new cmsForm(gen_uri('photo', $id, 'rnd=' . $_SESSION['token']), 'post');
$form->addTextarea('Напишите комментарий:', 'text', request('text'));
echo $form->Submit('Добавить', 'submit');
unset($form);
}
}
else {
show_login('Вы не авторизованы, для комментирования, необходимо');
}
echo '<div class="b">' . icon('return.png');
echo '<a href="' . gen_users($row['photo_user'], 'album', '', RND) . '">Альбом</a> | ';
echo '<a href="' . gen_uri('addphoto', '', RND) . '">Добавить фото</a> | ';
echo '<a href="' . gen_uri('index', '', RND) . '">Галерея</a><br /></div>';
}
else {
$inSes->addMessage('Ошибка! Данного изображения нет в базе');
gen_red('index', '', RND);
}
break;
case 'addphoto':
if ($is_logged) {
if (!empty($_POST['cancel'])) {
gen_red('index', '', 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 (is_uploaded_file($_FILES['photo']['tmp_name'])) {
if (cms_strlen($title) >= 5 && cms_strlen($title) <= 50) {
if (cms_strlen($text) <= 1000) {
$photosize = getimagesize($_FILES['photo']['tmp_name']);
$ext = strtolower(substr(strrchr($_FILES['photo']['name'], '.'), 1));
if ($ext == 'jpg' || $ext == 'jpeg' || $ext == 'gif' || $ext == 'png') {
if ($_FILES['photo']['size'] > 0 && $_FILES['photo']['size'] <= $config['photos_max_weight']) {
if ($photosize[0] <= $config['photos_max_size'] && $photosize[1] <= $config['photos_max_size'] && $photosize[0] >= 100 && $photosize[1] >= 100) {
if (is_quarantine($log)) {
if (is_flood($log)) {
$text = antimat($text);
$text = smiles($text);
$lastid = (int) $db->query("INSERT INTO ?_users_photos (`photo_user`, `photo_title`, `photo_text`, `photo_link`, `photo_time`, `photo_battle`, `photo_closed`) VALUES (?, ?, ?, ?, ?, ?, ?);", $log, $title, $text, '', SITE_TIME, $battle, $closed);
$db->query("UPDATE ?_users_photos SET `photo_link` = ? WHERE `photo_id` = ?;",$lastid . '.' . $ext, $lastid);
include_once( ENGINE . '/classes/upload.class.php' );
$handle = new upload($_FILES['photo']);
if ($handle -> uploaded) {
$handle -> file_new_name_body = $lastid;
$handle -> image_resize = true;
$handle -> image_ratio = true;
$handle -> image_ratio_no_zoom_in = true;
$handle -> image_y = $config['photos_max_size'];
$handle -> image_x = $config['photos_max_size'];
$handle -> file_overwrite = true;
if (!empty($config['image_watermark'])) {
$handle -> image_watermark = ROOTPATH . '/images/watermark.png';
$handle -> image_watermark_position = 'BR';
}
$handle -> process( ROOTPATH . '/upload/pictures/' );
if ($handle -> processed) {
$handle -> clean();
/* Лента */
$subs = $db->select("SELECT * FROM ?_users_lenta_subscribe
WHERE `sub_publisher` = ?", $log);
if (!empty($subs) && count($subs) > 0) {
$sex = ($uset['users_gender'] == 1) ? 'добавил' : 'добавила';
$text = $sex . " новое фото <b>" . $title . "</b> в галерею.n";
$text .= "[gallery=" . $lastid . "]Подробнее >>[/gallery]";
foreach($subs as $sub) {
$db->query("INSERT INTO ?_users_lenta SET `lenta_subscriber` = ?, `lenta_publisher` = ?, `lenta_time` = ?, `lenta_message` = ?", $sub['sub_subscriber'], $log, SITE_TIME, $text);
}
}
$inSes->addMessage('Фотография успешно загружена!', 'ok');
gen_red('index', '', RND);
}
else $error = 'Ошибка! ' . $handle -> error;
}
else $error = 'Ошибка! Не удалось загрузить изображение!';
}
else $error = 'Антифлуд! Вы слишком часто добавляете фотографии!';
}
else $error = 'Карантин! Вы не можете добавлять фото в течении ' . round($config['allow_karantin'] / 3600) . ' часов!';
}
else $error = 'Ошибка! Размер изображения должен быть от 100 до ' . $config['photos_max_size'] . ' px';
}
else $error = 'Ошибка! Вес изображения должен быть не более ' . size($config['photos_max_weight']);
}
else $error = 'Ошибка! Недопустимое расширение (Разрешено jpg, jpeg, gif и png)!';
}
else $error = 'Слишком длинное описание (Необходимо до 1000 символов)!';
}
else $error = 'Слишком длинное или короткое название (Необходимо от 5 до 50 символов)!';
}
else $error = 'Ошибка! Не удалось загрузить изображение!';
}
else $error = 'Ошибка! Неверный идентификатор сессии, повторите действие!';
if (!empty($error)) $inSes->addMessage($error, 'error');
}
show_header('Добавление фотографии');
$form = new cmsForm(gen_uri('addphoto', '', 'rnd=' . $_SESSION['token'] . '&' . RND), 'post');
$form->addFile('Прикрепить фото:', 'photo', ' accept="image/jpeg,image/gif,image/png"');
$form->addText('Название:', 'title', request('title'));
$form->addTextarea('Подпись к фото:', 'text', request('text'));
$form->addCheckBox('Участвует в фото-битвах:', 'battle', request('battle'));
$form->addCheckBox('Закрыть комментарии:', 'closed');
echo $form->Submit(array('Добавить','Отмена'), array('submit','cancel'));
unset($form);
echo '<div class="b">';
echo 'Разрешается добавлять фото с расширением jpg, jpeg, gif и png<br />';
echo 'Весом не более ' . size($config['photos_max_weight']) . ' и размером от 100 до ' . num($config['photos_max_size']) . ' px<br /></div>';
}
else {
show_header('Добавление фотографии');
show_login('Вы не авторизованы, чтобы добавить фотографию, необходимо');
}
echo '<div class="b">' . icon('return.png');
echo '<a href="' . gen_uri('index', '', 'page=' . $page . '&' . RND) . '">Вернуться</a><br /></div>';
break;
case 'edit':
if ($is_logged) {
$photo = $db->selectRow("SELECT * FROM ?_users_photos WHERE `photo_id` = ? AND `photo_user` = ? LIMIT 1;", $id, $log);
if (!empty($photo)) {
if (!empty($_POST['cancel'])) {
gen_red('photo', $id, 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) >= 5 && 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');
gen_red('photo', $id, RND);
}
else $inSes->addMessage('Ошибка! Слишком длинное описание (Необходимо до 1000 символов)!');
}
else $inSes->addMessage('Ошибка! Слишком длинное или короткое название!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
if (!empty($_GET['del'])) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (is_writeable(ROOTPATH.'/upload/pictures') ) {
if (empty($photo['photo_comments'])) {
$db->query("DELETE FROM ?_users_photos WHERE `photo_id` = ? LIMIT 1;", $id);
$db->query("DELETE FROM ?_comments WHERE `comm_type` = 'gallery' AND `comm_post` = ?;", $id);
$db->query("OPTIMIZE TABLE ?_users_photos, ?_comments");
//unlink_image('upload/pictures/', $querydel['photo_link']);
$inSes->addMessage('Фотография успешно удалена!', 'ok');
gen_red('index', '', RND);
}
else $inSes->addMessage('Ошибка! Запрещено удалять фотографии к которым имеются комментарии!');
}
else $inSes->addMessage('Ошибка! Не установлены атрибуты доступа на дирекоторию с фотографиями!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
show_header('Редактирование фотографии');
$photo['photo_text'] = str_replace('<br />', "n", nosmiles($photo['photo_text']));
$form = new cmsForm(gen_uri('edit', $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('error.gif', 'icons');
echo '<a href="' . gen_uri('edit', $id, 'del=1&rnd='.$_SESSION['token']) . '">Удалить фото</a></div>';
}
else {
show_header('Редактирование фотографии');
show_error('Ошибка! Фотография удалена или вы не автор этой фотографии!');
}
}
else {
show_header('Редактирование фотографии');
show_login('Вы не авторизованы, чтобы редактировать фотографию, необходимо');
}
echo '<div class="b">' . icon('return.png');
echo '<a href="album.php?act=photo&page=' . $page . '&'.RND.'">Альбом</a> | ';
echo '<a href="' . gen_uri('index', '', RND) . '">Галерея</a><br /></div>';
break;
case 'albums':
show_header('Альбомы пользователей');
$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 COUNT(*) AS `cnt`, SUM(`photo_comments`) AS `comments`, `photo_user`
FROM ?_users_photos GROUP BY `photo_user` ORDER BY `cnt`
DESC LIMIT ?d, ?d", $from, $onpage);
if (!empty($rows) && $total > 0) {
foreach($rows as $row) {
echo '<div class="b">' . icon('photos.png', 'icons');
echo '<b><a href="' . gen_users($row['photo_user'], 'album', '', RND) . '">' . nickname($row['photo_user']) . '</a></b> (' . $row['cnt'] . ' фото / ' . $row['comments'] . ' комм.)<br /></div>';
}
echo show_pages('album', RND, 'p');
echo '<div class="b">Всего альбомов: <b>' . $total . '</b><br /></div>';
}
else {
show_error('Альбомов еще нет!');
}
echo '<div class="b">' . icon('return.png');
echo '<a href="' . gen_uri('index', '', RND) . '">В галерею</a> | ';
echo '<a href="' . gen_uri('top', '', RND) . '">Топ фото</a> | ';
echo '<a href="' . gen_uri('addphoto', '', RND) . '">Добавить фото</a><br /></div>';
break;
case 'top':
switch ($id) {
case 1: $order = 'photo_comments'; break;
default: $order = 'photo_rating'; break;
}
show_header('Топ популярных фотографий');
echo '<div class="b">';
echo '<a href="#down">' . icon('down.png') . '</a> ';
echo 'Сортировать: ';
if ($order == 'photo_rating') {
echo '<b><a href="' . gen_uri('top', '', RND) . '">Оценки</a></b>, ';
} else {
echo '<a href="' . gen_uri('top', '', RND) . '">Оценки</a>, ';
}
if ($order == 'photo_comments') {
echo '<b><a href="' . gen_uri('top', 1, RND) . '">Комментарии</a></b>';
} else {
echo '<a href="' . gen_uri('top', 1, RND) . '">Комментарии</a>';
}
echo '</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 " . $order . " DESC
LIMIT ?d, ?d", $from, $onpage);
if (!empty($rows) && $total > 0) {
foreach($rows as $row) {
$size = read_file( ROOTPATH . '/upload/pictures/' . $row['photo_link'] );
echo '<div class="b"><table><tr>';
echo '<td width="30%"><div id="gallery"><a href="' . 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="' . 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 'Добавлено: ' . users_anketa($row['photo_user']) . ' (' . get_date($row['photo_time']) . ')<br />';
echo '<a href="' . gen_uri('photo', $row['photo_id'], 'page=' . $page . '#comm') . '">Комментарии</a> (' . $row['photo_comments'] . ')';
echo '</td></tr></table></div>';
}
echo show_pages(gen_uri('top', $id, RND));
echo '<div class="b">Всего фотографий: <b>' . $total . '</b><br /></div>';
}
else {
show_error('Загруженных фотографий еще нет!');
}
echo '<div class="b">';
echo '<a href="#up">' . icon('up.png') . '</a> ';
echo '<a href="' . gen_uri('albums', '', RND) . '">Альбомы</a> | ';
echo '<a href="' . gen_uri('addphoto', '', RND) . '">Добавить фото</a> | ';
echo '<a href="' . gen_uri('index', '', RND) . '">Галерея</a><br /></div>';
break;
endswitch;
show_footer();
?>