Вход Регистрация
Файл: modules/library/index.php
Строк: 69
<?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 
JohncmsNavChain;
use 
JohncmsSystemHttpRequest;
use 
JohncmsSystemLegacyTools;
use 
JohncmsSystemUsersUser;
use 
JohncmsSystemViewExtensionAssets;
use 
JohncmsSystemViewRender;
use 
JohncmsSystemi18nTranslator;
use 
AuraAutoloadLoader;

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

/**
 * @var Assets $assets
 * @var PDO $db
 * @var Tools $tools
 * @var User $user
 * @var Render $view
 * @var NavChain $nav_chain
 * @var Request $request
 */

$assets = di(Assets::class);
$config = di('config')['johncms'];
$db = di(PDO::class);
$tools = di(Tools::class);
$user = di(User::class);
$view = di(Render::class);
$nav_chain = di(NavChain::class);
$request = di(Request::class);

// Register the module languages domain and folder
di(Translator::class)->addTranslationDomain('library', __DIR__ . '/locale');

// Регистрируем автозагрузчик для классов библиотеки
$loader = new Loader();
$loader->register();
$loader->addPrefix('Library', __DIR__ . '/classes');

// Регистрируем Namespace для шаблонов модуля
$view->addFolder('library', __DIR__ . '/templates/');
$view->addFolder('libraryHelpers', __DIR__ . '/templates/helpers/');

$id = $request->getQuery('id', 0, FILTER_VALIDATE_INT);
$act = $request->getQuery('act', '', FILTER_SANITIZE_STRING);
$mod = $request->getQuery('mod', '', FILTER_SANITIZE_STRING);
$do = isset($_REQUEST['do']) ? trim($_REQUEST['do']) : false;

$adm = ($user->rights > 4);

$title = __('Library');
$nav_chain->add($title, '/library/');

$error = '';
// Ограничиваем доступ к Библиотеке
if (! $config['mod_lib'] && $user->rights < 7) {
    
$error = __('Library is closed');
} elseif (
$config['mod_lib'] === 1 && ! $user->isValid()) {
    
$error = __('Access forbidden');
}

if (
$error) {
    echo 
$view->render(
        
'system::pages/result',
        [
            
'title'   => $title,
            
'type'    => 'alert-danger',
            
'message' => $error,
        ]
    );
    exit;
}

// Динамические заголовки библиотеки
$tab = $do === 'dir' ? 'library_cats' : 'library_texts';

if (
$id > 0) {
    
$hdrsql = $db->query('SELECT `name` FROM `' . $tab . '` WHERE `id` = ' . $id . ' LIMIT 1');

    
$hdrres = '';
    if (
$hdrsql->rowCount()) {
        
$hdrres = $hdrsql->fetchColumn();
    }

    
$hdr = htmlentities($hdrres, ENT_QUOTES, 'UTF-8');
    if (
$hdr) {
        
$page_title = $hdr;
        
$title .= ' | ' . (mb_strlen($hdr) > 30 ? $hdr . '...' : $hdr);
    }
}

$array_includes = [
    
'addnew',
    
'comments',
    
'del',
    
'download',
    
'mkdir',
    
'moder',
    
'move',
    
'new',
    
'premod',
    
'search',
    
'top',
    
'tags',
    
'tagcloud',
    
'lastcom',
];

if (! 
in_array($act, $array_includes, true)) {
    
$act = 'index';
}
require_once 
'includes/' . $act . '.php';
Онлайн: 2
Реклама