Вход Регистрация
Файл: 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&amp;page=' . $page . '&amp;' . 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 . '&amp;' . 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 . '&amp;' . 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('Произошла Ошибка! Вы не ввели запрос &quot;Что искать?&quot;');
            
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 . '&amp;' . 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 . '&amp;' . 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 .= '&amp;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 . '&amp;' . 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&amp;rnd=' . $_SESSION['token'] . '&amp;' . 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&amp;rnd=' . $_SESSION['token'] . '&amp;' . 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 . "]Подробнее &gt;&gt;[/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'] . '&amp;' . 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 . '&amp;' . 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'] . '&amp;' . 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&amp;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&amp;page=' . $page . '&amp;'.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 . '&amp;' . 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 . '&amp;' . 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();

?>
Онлайн: 1
Реклама