Вход Регистрация
Файл: DESURE-dcms-f12de01ac63e/photos/photo.php
Строк: 183
<?php
include_once '../sys/inc/start.php';
$doc = new document ();
$doc->title __('Фотоальбомы');

if (!empty(
$_GET ['id'])) {
    
$ank = new user((int) $_GET ['id']);
} else {
    
$ank $user;
}

if (!
$ank->group) {
    
$doc->access_denied(__('Ошибка пользователя'));
}

// папка фотоальбомов пользователей
$photos = new files(FILES '/.photos');
// папка альбомов пользователя
$albums_path FILES '/.photos/' $ank->id;

if (!@
is_dir($albums_path)) {
    if (!
$albums_dir $photos->mkdir($ank->login$ank->id))
            
$doc->access_denied(__('Не удалось создать папку под фотоальбомы пользователя'));

    
$albums_dir->id_user $ank->id;
    
$albums_dir->group_show 0;
    
$albums_dir->group_write min($ank->group2);
    
$albums_dir->group_edit max($ank->group4);
    unset(
$albums_dir);
}

$albums_dir = new files($albums_path);

if (empty(
$_GET ['album']) || !$albums_dir->is_dir($_GET ['album'])) {
    
$doc->err(__('Запрошеный альбом не существует'));
    
$doc->ret(__('К альбомам'), 'albums.php?id=' $ank->id);
    
header('Refresh: 1; url=albums.php?id=' $ank->id);
    exit();
}

$album_name = (string) $_GET ['album'];
$album = new files($albums_path '/' $album_name);
$doc->title $album->runame;

if (empty(
$_GET ['photo']) || !$album->is_file($_GET ['photo'])) {
    
$doc->err(__('Запрошенная фотография не найдена'));
    
$doc->ret(__('К альбому %s'$name), 'photos.php?id=' $ank->id '&amp;album=' urlencode($album->name));
    
$doc->ret(__('К альбомам'), 'albums.php?id=' $ank->id);
    
header('Refresh: 1; url=photos.php?id=' $ank->id '&alnum=' urlencode($album->name));
    exit();
}

$photo_name $_GET ['photo'];

$photo = new files_file($albums_path '/' $album_name$photo_name);
$doc->title $photo->runame;

$doc->description __('Фото пользователя %s:%s'$ank->login$photo->runame);
$doc->keywords [] = $photo->runame;
$doc->keywords [] = $album->runame;
$doc->keywords [] = $ank->login;

// удаление фотографии
if ($photo->id_user && $photo->id_user == $user->id) {
    if (!empty(
$_GET ['act']) && $_GET ['act'] === 'delete') {

        if (!empty(
$_POST ['delete'])) {
            if (empty(
$_POST ['captcha']) || empty($_POST ['captcha_session']) || !captcha::check($_POST ['captcha'],
                    
$_POST ['captcha_session'])) $doc->err(__('Проверочное число введено неверно'));
            elseif (
$photo->delete()) {
                
$doc->msg(__('Фото успешно удалено'));
                
$doc->ret(__('Альбом %s'$album->name),
                    
'photos.php?id=' $ank->id '&amp;album=' urlencode($album->name));
                
$doc->ret(__('Альбомы %s'$ank->nick), 'albums.php?id=' $ank->id);
                
header('Refresh: 1; url=photos.php?id=' $ank->id '&album=' urlencode($album->name) . '&' passgen());
                exit();
            } else {

                
$doc->err(__('Не удалось удалить фото'));
                
$doc->ret(__('К фото'),
                    
'?id=' $ank->id '&amp;album=' urlencode($album->name) . '&amp;photo=' urlencode($photo->name));
                
$doc->ret(__('Альбом %s'$album->name),
                    
'photos.php?id=' $ank->id '&amp;album=' urlencode($album->name));
                
$doc->ret(__('Альбомы %s'$ank->login), 'albums.php?id=' $ank->id);
                
header('Refresh: 1; url=?id=' $ank->id '&album=' urlencode($album->name) . '&photo=' urlencode($photo->name) . '&' passgen());
            }
            exit();
        }

        
$form = new form(new url(null, array('id' => $ank->id'album' => $album->name'photo' => $photo->name)));
        
$form->captcha();
        
$form->button(__('Удалить фото'), 'delete');
        
$form->display();

        
$doc->ret(__('К фото'),
            
'?id=' $ank->id '&amp;album=' urlencode($album->name) . '&amp;photo=' urlencode($photo->name));
        
$doc->ret(__('Альбом %s'$album->name), 'photos.php?id=' $ank->id '&amp;album=' urlencode($album->name));
        
$doc->ret(__('Альбомы %s'$ank->login), 'albums.php?id=' $ank->id);
        exit();
    }

    
$doc->act(__('Удалить фото'),
        
'?id=' $ank->id '&amp;album=' urlencode($album->name) . '&amp;photo=' urlencode($photo->name) . '&amp;act=delete');
}

if (
$screen $photo->getScreen($doc->img_max_width(), 0)) {
    echo 
"<img class='DCMS_photo' src='" $screen "' alt='" __('Фото') . " " text::toValue($photo->runame) . "' /><br />n";
}

$can_write true;
if (!
$user->is_writeable) {
    
$doc->err(__('Новым пользователям разрешено писать только через %s часа пребывания на сайте',
            
$dcms->user_write_limit_hour));
    
$can_write false;
}

if (
$can_write) {


// добавление комментария
    
if (isset($_POST ['send']) && isset($_POST ['message']) && $user->group) {
        
$message text::input_text($_POST ['message']);

        if (
$photo->id_user && $photo->id_user != $user->id && (empty($_POST ['captcha']) || empty($_POST ['captcha_session'])
            || !
captcha::check($_POST ['captcha'], $_POST ['captcha_session'])))
                
$doc->err(__('Проверочное число введено неверно'));
        elseif (
$dcms->censure && $mat is_valid::mat($message)) $doc->err(__('Обнаружен мат: %s'$mat));
        elseif (
$message) {
            
$user->balls++;
            
$res $db->prepare("INSERT INTO `files_comments` (`id_file`, `id_user`, `time`, `text`) VALUES (?,?,?,?)");
            
$res->execute(Array($photo->id$user->idTIME$message));
            
$doc->msg(__('Комментарий успешно оставлен'));
            
$photo->comments++;

            if (
$photo->id_user && $photo->id_user != $user->id) { // уведомляем автора о комментарии
                
$ank->mess("$user->login оставил" . ($user->sex '' 'а') . " комментарий к Вашему фото [url=/photos/photo.php?id=$ank->id&album=$album->name&photo=$photo->name]{$photo->runame}[/url]");
            }
        } else {
            
$doc->err(__('Комментарий пуст'));
        }
    }

// форма добавления комментария
    
if ($user->group) {
        
$form = new form(new url(null, array('id' => $ank->id'album' => $album->name'photo' => $photo)));
        
$form->textarea('message'__('Комментарий'));
        if (
$photo->id_user && $photo->id_user != $user->id$form->captcha();
        
$form->button(__('Отправить'), 'send');
        
$form->display();
    }
}
if (!empty(
$_GET ['delete_comm']) && $user->group >= $photo->group_edit) {
    
$delete_comm = (int) $_GET ['delete_comm'];
    
$res $db->prepare("SELECT COUNT(*) FROM `files_comments` WHERE `id` = ? AND `id_file` = ? LIMIT 1");
    
$res->execute(Array($delete_comm$photo->id));
    
$k $res->fetchColumn();
    if (
$k) {
        
$res $db->prepare("DELETE FROM `files_comments` WHERE `id` = ? LIMIT 1");
        
$res->execute(Array($delete_comm));
        
$photo->comments--;
        
$doc->msg(__('Комментарий успешно удален'));
    } else 
$doc->err(__('Комментарий уже удален'));
}

$pages = new pages ();
$res $db->prepare("SELECT COUNT(*) FROM `files_comments` WHERE `id_file` = ?");
$res->execute(Array($photo->id));
$pages->posts $res->fetchColumn(); // количество сообщений
$q $db->prepare("SELECT * FROM `files_comments` WHERE `id_file` = ? ORDER BY `id` DESC LIMIT " $pages->limit);
$q->execute(Array($photo->id));

$listing = new listing();
if (
$arr $q->fetchAll()) {
    foreach (
$arr AS $comment) {
        
$ank2 = new user($comment ['id_user']);
        
$post $listing->post();

        
$post->title $ank2->nick();
        
$post->time misc::when($comment ['time']);
        
$post->icon($ank2->icon());
        
$post->content text::toOutput($comment ['text']);

        if (
$user->group >= $photo->group_edit) {
            
$post->action('delete',
                
'?id=' $ank->id '&amp;album=' urlencode($album->name) . '&amp;photo=' urlencode($photo->name) . '&amp;delete_comm=' $comment ['id']);
        }
    }
}
$listing->display(__('Комментарии отсутствуют'));

$pages->display('?id=' $ank->id '&amp;album=' urlencode($album->name) . '&amp;photo=' urlencode($photo->name) . '&amp;'); // вывод страниц


$doc->ret(__('Альбом %s'$album->runame), 'photos.php?id=' $ank->id '&amp;album=' urlencode($album->name));
$doc->ret(__('Альбомы %s'$ank->login), 'albums.php?id=' $ank->id);
Онлайн: 2
Реклама