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

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

/**
 * @var User $user_data
 * @var User $user
 */

$title $user_data->id !== $user->id __('User Profile') : __('My Profile');

$nav_chain->add($title'?user=' $user_data->id);

// Вычисляемые поля, которые нужно добавить в массив
$appends = [
    
'is_online',
    
'rights_name',
    
'profile_url',
    
'search_ip_url',
    
'whois_ip_url',
    
'search_ip_via_proxy_url',
    
'whois_ip_via_proxy_url',
    
'is_birthday',
    
'birthday_date',
    
'display_place',
    
'formatted_about',
    
'website',
    
'photo',
    
'last_visit',
];

// Готовим массив пользовательских данных для передачи в шаблон
$user_data_array $user_data->setAppends($appends)->toArray();

// История IP
$user_data_array['ip_history_count'] = $user_data->ipHistory()->count();
$user_data_array['ip_history_url'] = '/profile/?act=ip&amp;user=' $user_data->id;

// Карма
if ($config['karma']['on']) {
    
$user_data_array['karma_points'] = $user_data->karma_plus $user_data->karma_minus;
    if (! empty(
$user_data->karma_plus) || ! empty($user_data->karma_minus)) {
        
$user_data_array['karma_percent'] = round($user_data_array['karma_points'] / (($user_data->karma_plus $user_data->karma_minus) / 100));
    } else {
        
$user_data_array['karma_percent'] = 0;
    }

    
$user_data_array['positive_url'] = '?act=karma&amp;user=' $user_data->id '&amp;type=1';
    
$user_data_array['negative_url'] = '?act=karma&amp;user=' $user_data->id;

    if (
$user_data->id !== $user->id) {
        if (! 
$user->karma_off && (! $user_data->rights || ($user_data->rights && ! $config['karma']['adm'])) && $user_data->ip !== $user->ip) {
            
$karma = (new Karma())->where('user_id''='$user->id);
            
$sum $karma->where('time''>='$user->karma_time)->sum('points');
            
$count $karma->where('karma_user''='$user_data->id)->where('time''>', (time() - 86400))->count();
            if (empty(
$user->ban) && $user->postforum >= $config['karma']['forum'] && ($config['karma']['karma_points'] - $sum) > && ! $count) {
                
$user_data_array['vote_url'] = '?act=karma&amp;mod=vote&amp;user=' $user_data->id;
            }
        }
    } else {
        
$total_karma = (new Karma())->where('karma_user''='$user->id)->where('time''>', (time() - 86400))->count();
        if (
$total_karma 0) {
            
$user_data_array['karma_new_url'] = '?act=karma&amp;mod=new';
            
$user_data_array['karma_new'] = $total_karma;
        }
    }
}

// Готовим массив для шаблона
$data = [
    
'user'      => $user_data_array,
    
'show_ip'   => $user->rights && $user->rights >= $user_data->rights,
    
'can_write' => ! $tools->isIgnor($user_data->id) && is_contact($user_data->id) !== && ! isset($user->ban['1']) && ! isset($user->ban['3']),
    
'blocked'   => is_contact($user_data->id) === 2,
];

// Различные оповещения
$notifications = [];
if (
$user->rights >= && ! $user_data->preg && empty($user_data->regadm)) {
    
$notifications[] = __('Pending confirmation');
}
$data['notifications'] = $notifications;

// Счетчики
/** @var Ban $ban_user */
$ban_user $user_data->bans()->orderBy('ban_time''desc')->first();

$data['active_ban'] = false;
$data['active_ban_reason'] = '';
if (
$ban_user) {
    
$data['active_ban_reason'] = $ban_user->ban_reason;
    
$data['active_ban'] = $ban_user->is_active;
}

$data['counters'] = [
    
'ban'   => $user_data->bans()->count(),
];

// Админские кнопки
$buttons = [];

if (
is_contact($user_data->id) !== 2) {
    if (! 
is_contact($user_data->id)) {
        
$buttons[] = [
            
'url'  => '../mail/?id=' $user_data->id,
            
'name' => __('Add to Contacts'),
        ];
    } else {
        
$buttons[] = [
            
'url'  => '../mail/?act=deluser&amp;id=' $user_data->id,
            
'name' => __('Remove from Contacts'),
        ];
    }
}

if (
$user_data->id === $user->id || $user->rights === || ($user->rights === && $user->rights $user_data->rights)) {
    
$buttons[] = [
        
'url'  => '?act=edit&amp;user=' $user_data->id,
        
'name' => __('Edit'),
    ];
}
if (
$user_data->id !== $user->id && $user->rights >= && $user->rights $user_data->rights) {
    
$buttons[] = [
        
'url'  => '/admin/usr_del/?id=' $user_data->id,
        
'name' => __('Delete'),
    ];
}
if (
$user_data->id !== $user->id && $user->rights $user_data->rights) {
    
$buttons[] = [
        
'url'  => '?act=ban&amp;mod=do&amp;user=' $user_data->id,
        
'name' => __('Ban'),
    ];
}
$data['buttons'] = $buttons;

// Выводим шаблон
echo $view->render(
    
'profile::index',
    [
        
'title'      => $title,
        
'page_title' => $title,
        
'data'       => $data,
    ]
);
Онлайн: 0
Реклама