Вход Регистрация
Файл: modules/profile/index.php
Строк: 79
<?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 
JohncmsUsersUser;
use 
JohncmsSystemViewExtensionAssets;
use 
JohncmsSystemViewRender;
use 
JohncmsSystemi18nTranslator;

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

/**
 * @var Assets $assets
 * @var PDO $db
 * @var Tools $tools
 */

$assets di(Assets::class);
$config di('config')['johncms'];
$db di(PDO::class);
$tools di(Tools::class);

/** @var User $user */
$user di(User::class);

/** @var Render $view */
$view di(Render::class);

/** @var Request $request */
$request di(Request::class);

/** @var NavChain $nav_chain */
$nav_chain di(NavChain::class);

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

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

// Закрываем от неавторизованных юзеров
if (! $user->is_valid) {
    echo 
$view->render(
        
'system::pages/result',
        [
            
'title'   => __('User Profile'),
            
'type'    => 'alert-danger',
            
'message' => __('For registered users only'),
        ]
    );
    exit;
}

$id $request->getQuery('id'0FILTER_SANITIZE_NUMBER_INT);
$user_id $request->getQuery('user'$user->idFILTER_SANITIZE_NUMBER_INT);
$act $request->getQuery('act''index'FILTER_SANITIZE_STRING);
$mod $request->getQuery('mod'''FILTER_SANITIZE_STRING);

/** @var User $user_data Получаем данные пользователя */
$user_data $user_id !== $user->id ? (new User())->find($user_id) : $user;

if (empty(
$user_data->id) || (! $user_data->preg && $user->rights 7)) {
    echo 
$view->render(
        
'system::pages/result',
        [
            
'title'   => __('User Profile'),
            
'type'    => 'alert-danger',
            
'message' => __('This User does not exists'),
        ]
    );
    exit;
}

/**
 * Находится ли выбранный пользователь в контактах и игноре?
 *
 * @param int $id Идентификатор пользователя, которого проверяем
 * @return int Результат запроса:
 *                0 - не в контактах
 *                1 - в контактах
 *                2 - в игноре у меня
 */
function is_contact($id 0)
{
    global 
$db$user;

    static 
$user_id null;
    static 
$return 0;

    if (! 
$user->is_valid && ! $id) {
        return 
0;
    }

    if (
null === $user_id || $id != $user_id) {
        
$user_id $id;
        
$req $db->query("SELECT * FROM `cms_contact` WHERE `user_id` = '" $user->id "' AND `from_id` = '${id}'");

        if (
$req->rowCount()) {
            
$res $req->fetch();
            if (
$res['ban'] == 1) {
                
$return 2;
            } else {
                
$return 1;
            }
        } else {
            
$return 0;
        }
    }

    return 
$return;
}

// Переключаем режимы работы
$mods = [
    
'activity',
    
'ban',
    
'edit',
    
'images',
    
'ip',
    
'guestbook',
    
'karma',
    
'office',
    
'password',
    
'reset',
    
'settings',
    
'stat',
    
'index',
];

if (
$act && ($key array_search($act$modstrue)) !== false && file_exists(__DIR__ '/includes/' $mods[$key] . '.php')) {
    require 
__DIR__ '/includes/' $mods[$key] . '.php';
} else {
    
pageNotFound();
}
Онлайн: 0
Реклама