Просмотр файла modules/downloads/includes/comments.php

Размер файла: 3.49Kb
<?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);

use Downloads\Download;

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

/**
 * @var PDO $db
 * @var Johncms\System\Users\User $user
 */

if (! $config['mod_down_comm'] && $user->rights < 7) {
    http_response_code(403);
    echo $view->render(
        'system::pages/result',
        [
            'title'         => __('Comments'),
            'type'          => 'alert-danger',
            'message'       => __('Comments are disabled'),
            'back_url'      => $url,
            'back_url_name' => __('Downloads'),
        ]
    );
    exit;
}

$req_down = $db->query("SELECT * FROM `download__files` WHERE `id` = '" . $id . "' AND (`type` = 2 OR `type` = 3)  LIMIT 1");
$res_down = $req_down->fetch();

if (($res_down['type'] === 3 && $user->rights < 6 && $user->rights !== 4) || ! $req_down->rowCount() || ! is_file($res_down['dir'] . '/' . $res_down['name'])) {
    http_response_code(404);
    echo $view->render(
        'system::pages/result',
        [
            'title'         => __('File not found'),
            'type'          => 'alert-danger',
            'message'       => __('File not found'),
            'back_url'      => $url,
            'back_url_name' => __('Downloads'),
        ]
    );
    exit;
}

Download::navigation(['dir' => $res_down['dir'], 'refid' => 1, 'count' => 0]);
$nav_chain->add(htmlspecialchars($res_down['rus_name']), '/downloads/?act=view&id=' . $res_down['id']);
$nav_chain->add(__('Comments'), '/downloads/?act=comments&id=' . $res_down['id']);

$title_pages = htmlspecialchars(mb_substr($res_down['rus_name'], 0, 30));
$title = (mb_strlen($res_down['rus_name']) > 30 ? $title_pages . '...' : $title_pages) . ' - ' . __('Comments');

// Параметры комментариев
$arg = [
    // Поле с числом комментариев
    'object_comm_count'   => 'total',
    // Таблица с комментариями
    'comments_table'      => 'download__comments',
    // Таблица комментируемых объектов
    'object_table'        => 'download__files',
    // Имя скрипта (с параметрами вызова)
    'script'              => '?act=comments',
    // Имя идентификатора комментируемого объекта
    'sub_id_name'         => 'id',
    // Идентификатор комментируемого объекта
    'sub_id'              => $id,
    // Владелец объекта
    'owner'               => false,
    // Возможность владельцу удалять комментарий
    'owner_delete'        => false,
    // Возможность владельцу отвечать на комментарий
    'owner_reply'         => false,
    // Возможность владельцу редактировать комментарий
    'owner_edit'          => false,
    // Название раздела
    'title'               => __('Comments'),
    // Namespace для шаблонов. Заменить для кастомных шаблонов
    'templates_namespace' => 'system',
    // Ссылка на страницу назад
    'back_url'            => '/downloads/?act=view&id=' . $res_down['id'],
];

// Показываем комментарии
new Johncms\Comments($arg);