Вход Регистрация
Файл: modules/album/includes/comments.php
Строк: 61
<?php

/**
 * This file is part of JohnCMS Content Management System.
 *
 * @copyright JohnCMS Community
 * @license   https://opensource.org/licenses/GPL-3.0 GPL-3.0
 * @link      https://johncms.com JohnCMS Project
 */

declare(strict_types=1);

defined('_IN_JOHNCMS') || die('Error: restricted access');

/**
 * @var PDO $db
 * @var JohncmsSystemUsersUser $user
 * @var JohncmsSystemLegacyTools $tools
 */

// Проверяем наличие комментируемого объекта
$req_obj $db->query("SELECT * FROM `cms_album_files` WHERE `id` = '${img}'");

if (
$req_obj->rowCount()) {
    
$res_obj $req_obj->fetch();

    
// Получаем данные владельца Альбома
    
$owner $db->query('SELECT * FROM `users` WHERE `id` = ' $res_obj['user_id'])->fetch();

    if (! 
$owner) {
        echo 
$view->render(
            
'system::pages/result',
            [
                
'title'    => $title,
                
'type'     => 'alert-danger',
                
'message'  => __('User does not exists'),
                
'back_url' => './list?user=' $owner['id'],
            ]
        );
        exit;
    }

    
// Показываем выбранную картинку
    
unset($_SESSION['ref']);
    
$res_a $db->query('SELECT * FROM `cms_album_cat` WHERE `id` = ' $res_obj['album_id'])->fetch();

    
$nav_chain->add(htmlspecialchars($res_a['name']));

    if ((
$res_a['access'] === && $owner['id'] !== $user->id && $user->rights 7) || ($res_a['access'] === && $user->rights && (! isset($_SESSION['ap']) || $_SESSION['ap'] !== $res_a['password']) && $owner['id'] !== $user->id)) {
        
// Если доступ закрыт
        
echo $view->render(
            
'system::pages/result',
            [
                
'title'    => $title,
                
'type'     => 'alert-danger',
                
'message'  => __('Access forbidden'),
                
'back_url' => './list?user=' $owner['id'],
            ]
        );
        exit;
    }

    
// Параметры комментариев
    
$arg = [
        
'comments_table' => 'cms_album_comments'// Таблица с комментариями
        
'object_table'   => 'cms_album_files',    // Таблица комментируемых объектов
        
'script'         => './comments?',      // Имя скрипта (с параметрами вызова)
        
'sub_id_name'    => 'img',                // Имя идентификатора комментируемого объекта
        
'sub_id'         => $img,                 // Идентификатор комментируемого объекта
        
'owner'          => $owner['id'],         // Владелец объекта
        
'owner_delete'   => true,                 // Возможность владельцу удалять комментарий
        
'owner_reply'    => true,                 // Возможность владельцу отвечать на комментарий
        
'owner_edit'     => false,                // Возможность владельцу редактировать комментарий
        
'title'          => __('Comments'),       // Название раздела
        
'context_top'    => '',         // Выводится вверху списка
        
'context_bottom' => '',                   // Выводится внизу списка
        
'back_url'       => './show?al=' $res_obj['album_id'] . '&user=' $owner['id'],                   // Выводится внизу списка
    
];

    
// Ставим метку прочтения
    
if ($user->id === $owner['id'] && $res_obj['unread_comments']) {
        
$db->exec("UPDATE `cms_album_files` SET `unread_comments` = '0' WHERE `id` = '${img}' LIMIT 1");
    }

    
// Показываем комментарии
    
$comm = new JohncmsComments($arg);

    
// Обрабатываем метки непрочитанных комментариев
    
if ($comm->added && $user->id !== $owner['id']) {
        
$db->exec("UPDATE `cms_album_files` SET `unread_comments` = '1' WHERE `id` = '${img}' LIMIT 1");
    }
} else {
    echo 
$view->render(
        
'system::pages/result',
        [
            
'title'   => $title,
            
'type'    => 'alert-danger',
            
'message' => __('Wrong data'),
        ]
    );
}
Онлайн: 2
Реклама