Вход Регистрация
Файл: modules/help/includes/avatars.php
Строк: 72
<?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 JohncmsSystemLegacyTools $tools
 * @var JohncmsSystemUsersUser $user
 */

$title = __('Avatars');
$nav_chain->add($title, '?act=avatars');
$data = [];

// Каталог пользовательских Аватаров
if ($id && is_dir(ASSETS_PATH . 'avatars/' . $id)) {
    
$avatar = isset($_GET['avatar']) ? (int) ($_GET['avatar']) : false;

    if (
$user->isValid() && $avatar && is_file(ASSETS_PATH . 'avatars/' . $id . '/' . $avatar . '.png')) {
        if (isset(
$_POST['submit'])) {
            
// Устанавливаем пользовательский Аватар
            
if (@copy(ASSETS_PATH . 'avatars/' . $id . '/' . $avatar . '.png', UPLOAD_PATH . 'users/avatar/' . $user->id . '.png')) {
                echo 
$view->render(
                    
'system::pages/result',
                    [
                        
'title'         => $title,
                        
'type'          => 'alert-success',
                        
'message'       => __('Avatar has been successfully applied'),
                        
'back_url'      => '../profile/?act=edit',
                        
'back_url_name' => __('Continue'),
                    ]
                );
            } else {
                echo 
$view->render(
                    
'system::pages/result',
                    [
                        
'title'         => $title,
                        
'type'          => 'alert-danger',
                        
'message'       => __('An error occurred'),
                        
'back_url'      => './',
                        
'back_url_name' => __('Back'),
                    ]
                );
            }
        } else {
            
$title = __('Set to Profile');
            
$data = [
                
'form_action'     => '?act=avatars&amp;id=' . $id . '&amp;avatar=' . $avatar,
                
'message'         => __('Are you sure you want to set yourself this avatar?'),
                
'img'             => '../assets/avatars/' . $id . '/' . $avatar . '.png',
                
'back_url'        => '?act=avatars&amp;id=' . $id,
                
'submit_btn_name' => __('Save'),
            ];
            echo 
$view->render(
                
'help::confirm',
                [
                    
'title'      => $title,
                    
'page_title' => $title,
                    
'data'       => $data,
                ]
            );
        }
    } else {
        
// Показываем список Аватаров
        
$title = htmlentities(file_get_contents(ASSETS_PATH . 'avatars/' . $id . '/name.txt'), ENT_QUOTES, 'utf-8');
        
$nav_chain->add($title);

        
// Количество аватаров на страницу
        
$per_page = 50;

        
$array = glob(ASSETS_PATH . 'avatars/' . $id . '/*.png');
        
$total = count($array);
        
$end = $start + $per_page;

        if (
$end > $total) {
            
$end = $total;
        }

        if (
$total > 0) {
            
$items = [];
            for (
$i = $start; $i < $end; $i++) {
                
$items[] = [
                    
'picture' => '../assets/avatars/' . $id . '/' . basename($array[$i]),
                    
'set_url' => $user->isValid() ? '?act=avatars&amp;id=' . $id . '&amp;avatar=' . basename($array[$i]) : '',
                ];
            }
        }

        
$data['pagination'] = $tools->displayPagination('?act=avatars&amp;id=' . $id . '&amp;', $start, $total, $per_page);
        
$data['total'] = $total;
        
$data['per_page'] = $per_page;
        
$data['items'] = $items ?? [];
        
$data['back_url'] = '?act=avatars';

        echo 
$view->render(
            
'help::avatar_list',
            [
                
'title'      => $title,
                
'page_title' => $title,
                
'data'       => $data,
            ]
        );
    }
} else {
    
// Показываем каталоги с Аватарами
    
$dir = glob(ASSETS_PATH . 'avatars/*', GLOB_ONLYDIR);
    
$total_dir = count($dir);
    
$items = [];
    for (
$i = 0; $i < $total_dir; $i++) {
        
$count = (int) count(glob($dir[$i] . '/*.png'));
        
$items[] = [
            
'url'   => '?act=avatars&amp;id=' . basename($dir[$i]),
            
'name'  => htmlentities(file_get_contents($dir[$i] . '/name.txt'), ENT_QUOTES, 'utf-8'),
            
'count' => $count,
        ];
    }

    
$data['items'] = $items ?? [];
    
$data['back_url'] = htmlspecialchars($_SESSION['ref']);

    echo 
$view->render(
        
'help::avatars',
        [
            
'title'      => $title,
            
'page_title' => $title,
            
'data'       => $data,
        ]
    );
}
Онлайн: 0
Реклама