Файл admin.infos.php в Cotonti

Основное назначение файла и его место в системе

Файл admin.infos.php является частью административной панели Cotonti CMF (Content Management Framework). Его основное назначение — предоставление информации о текущем сервере и его конфигурации для администраторов сайта. Эта информация может включать версии PHP и Zend Engine, тип интерфейса PHP, операционную систему, текущие даты и времена, а также информацию о кэш-драйверах.

Файл находится в папке /system/admin/, что указывает на его роль в административной части системы. Администраторы могут использовать его для диагностики, мониторинга состояния серверной среды, а также для получения информации о версиях используемых технологий.

Суть содержания кода и выполняемые задачи

  1. Проверка доступа: Код проверяет, был ли файл вызван в правильном контексте, с проверкой определённых констант (COT_CODE, COT_ADMIN). Если они не определены, выполнение останавливается с ошибкой.

  2. Получение прав пользователя: Функция cot_auth используется для получения прав доступа текущего пользователя для администрирования.

  3. Шаблонная система: Используется шаблон XTemplate для отображения информации. Код генерирует информацию о сервере, которая затем передается в шаблон для вывода.

  4. Получение информации о сервере: В коде используются функции PHP, такие как phpversion, zend_version, php_sapi_name, и другие для получения информации о сервере и PHP. Также выводится информация о текущей дате и времени.

  5. Интеграция с плагинами: Код поддерживает хуки (cot_getextplugins), что позволяет интегрировать сторонние плагины в процесс отображения информации.

  6. Обработка ошибок: Отключение и восстановление уровня отчёта об ошибках через error_reporting. Это необходимо для того, чтобы избежать появления ошибок на странице в случае возникновения непредвиденных ситуаций.

Список функций и их описание

  1. cot_auth():

    • Описание: Функция используется для получения прав доступа пользователя в определённой области (в данном случае в админпанели).
    • Что делает: Возвращает права доступа для чтения и записи, а также проверяет, является ли пользователь администратором.
  2. cot_block():

    • Описание: Эта функция блокирует доступ к странице, если у пользователя нет соответствующих прав (права на чтение).
    • Что делает: Прерывает выполнение, если текущий пользователь не имеет прав для доступа к странице.
  3. cot_tplfile():

    • Описание: Функция загружает шаблон для отображения данных.
    • Что делает: Возвращает путь к шаблону для админпанели, который затем используется для вывода информации.
  4. cot_generate_infotags():

    • Описание: Функция генерирует информационные теги для вывода системной информации.
    • Что делает: Заполняет шаблон информационными данными, такими как версия PHP, версия Zend, и другие серверные данные.
  5. cot_getextplugins():

    • Описание: Функция получает и выполняет плагины, связанные с определёнными хуками.
    • Что делает: Ищет и подключает плагины для хуков, чтобы расширить функциональность страницы админпанели.
  6. cot_date():

    • Описание: Функция для форматирования даты.
    • Что делает: Преобразует текущую метку времени в читаемый формат, который затем используется в шаблоне.
  7. cot_parse():

    • Описание: Функция, которая выполняет обработку данных для вывода в шаблон, такие как HTML или BB-код.
    • Что делает: Обрабатывает текстовые данные для корректного отображения на странице.

Стиль PHP

  1. Использование функционального подхода: Код активно использует функциональный стиль, что видно из частого применения встроенных функций (например, function_exists(), phpversion(), zend_version(), php_sapi_name() и т. д.). Это помогает гарантировать обратную совместимость, избегая ошибок в случае отсутствия необходимых функций.

  2. Шаблонный движок: Весь вывод информации осуществляется через шаблонный движок XTemplate, который позволяет легко разделить логику от отображения. Это хороший подход для организации кода.

  3. Обработка ошибок: Код использует директиву @error_reporting(0) для временного отключения ошибок и восстанавливает уровень ошибок в конце с помощью @error_reporting(7). Такой подход позволяет избежать вывода ошибок на фронтэнд, улучшая пользовательский опыт в админпанели.

  4. Использование хуков для расширяемости: Применение хуков (например, cot_getextplugins('admin.infos.first')) позволяет динамически подключать плагины на различных этапах выполнения, что способствует расширяемости системы и модульности.

  5. Проверка условий и fallback: Код тщательно проверяет существование функций или переменных перед их использованием (например, function_exists()), что повышает стабильность работы.

Заключение

Файл admin.infos.php предоставляет администраторам полезную информацию о сервере, что важно для мониторинга и диагностики системы. Он использует стандартные подходы для обработки данных, интеграции с плагинами и отображения через шаблоны. Ключевыми особенностями являются использование функциональных и объектно-ориентированных методов, проверка наличия функций для обеспечения совместимости и продуманное расширение через хуки.

<?php
/**
 * Административная панель - Информация о PHP
 *
 * @package Cotonti
 * @copyright (c) Cotonti Team
 * @license https://github.com/Cotonti/Cotonti/blob/master/License.txt
 */

(defined('COT_CODE') && defined('COT_ADMIN')) or die('Wrong URL.'); // Проверка на корректность вызова файла (необходимые константы должны быть определены)

list(Cot::$usr['auth_read'], Cot::$usr['auth_write'], Cot::$usr['isadmin']) = cot_auth('admin', 'a'); // Получение прав доступа для текущего пользователя
cot_block(Cot::$usr['auth_read']); // Блокирование доступа, если нет прав на чтение

$t = new XTemplate(cot_tplfile('admin.infos', 'core')); // Инициализация шаблона для страницы администратора (информация о PHP)

$adminPath[] = array(cot_url('admin', 'm=other'), Cot::$L['Other']); // Добавление пути для навигации (страница "Другие" разделы)
$adminPath[] = array(cot_url('admin', 'm=infos'), Cot::$L['adm_infos']); // Добавление текущего пути (страница "Информация")
$adminHelp = Cot::$L['adm_help_versions']; // Установка справочной информации для страницы
$adminTitle = Cot::$L['adm_infos']; // Установка заголовка страницы

/* === Hook === */
foreach (cot_getextplugins('admin.infos.first') as $pl) // Выполнение плагинов на этапе 'first' для страницы
{
	include $pl; // Подключение плагинов
}
/* ===== */

@error_reporting(0); // Отключение отчётов об ошибках для временного кода

$t->assign(cot_generate_infotags('ADMIN_INFOS_')); // Присваивание информации о PHP в шаблон

$t->assign(array(
	'ADMIN_INFOS_PHPVER' => (function_exists('phpversion')) ? phpversion() : Cot::$L['adm_help_config'], // Получение версии PHP
	'ADMIN_INFOS_ZENDVER' => (function_exists('zend_version')) ? zend_version() : Cot::$L['adm_help_config'], // Получение версии Zend Engine
	'ADMIN_INFOS_INTERFACE' => (function_exists('php_sapi_name')) ? php_sapi_name() : Cot::$L['adm_help_config'], // Получение интерфейса PHP
	'ADMIN_INFOS_CACHEDRIVERS' => (isset($cot_cache_drivers) && is_array($cot_cache_drivers)) ? implode(', ', $cot_cache_drivers) : '', // Получение используемых драйверов кэширования
	'ADMIN_INFOS_OS' => (function_exists('php_uname')) ? php_uname() : $L['adm_help_config'], // Получение информации об операционной системе
	'ADMIN_INFOS_DATE' => cot_date('datetime_medium', Cot::$sys['now'], false), // Текущая дата и время на сервере
	'ADMIN_INFOS_GMDATE' => gmdate('Y-m-d H:i'), // Гринвичское время
	'ADMIN_INFOS_GMTTIME' => Cot::$usr['gmttime'], // Время по Гринвичу (для пользователя)
	'ADMIN_INFOS_USRTIME' => Cot::$usr['localtime'], // Локальное время пользователя
	'ADMIN_INFOS_TIMETEXT' => Cot::$usr['timetext'] // Текстовое представление времени пользователя
));

/* === Hook === */
foreach (cot_getextplugins('admin.infos.tags') as $pl) // Выполнение плагинов на этапе 'tags' для страницы
{
	include $pl; // Подключение плагинов
}
/* ===== */

$t->parse('MAIN'); // Применение шаблона
$adminMain = $t->text('MAIN'); // Сохранение сгенерированного контента в переменную

@error_reporting(7); // Включение отчётов об ошибках на обычный уровень

 

5 минут чтения Administrator

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Автор контента

Administrator

Оффлайн

Administrator

Последняя авторизация: 05.07.2026 18:32

  • Страница размещена: 28.01.2025 18:07
  • Последнее обновление: 28.01.2025 18:07

Похожие страницы

Файл admin.cache.disk.php в Cotonti CMF
1 Файл admin.cache.disk.php в движке Cotonti CMF является частью административной панели, предназначенной для управления
Файл admin.cache.php в Cotonti
2 Основное назначение файла: Файл admin.cache.php в движке Cotonti CMF предназначен для управления внутренним кешем
Файл admin.config.php в Cotonti CMF
3 Основное назначение файла и его место в системе Файл admin.config.php является частью административной панели системы
Файл admin.extensions.php в Cotonti CMF
4 Файл "admin.extensions.php" в движке Cotonti CMF является важным компонентом административной части системы,
Файл admin.extrafields.php в Cotonti CMF
5 Файл admin.extrafields.php в движке Cotonti CMF предназначен для управления дополнительными полями (extra fields) в