Справочник по глобальным переменным в Cotonti

Вы можете использовать любую из этих глобальных переменных как глобальные теги шаблонов. Просто помните о синтаксисе CoTemplate.

Справочник по глобальным переменным

Большинство скриптов в Cotonti работают в глобальной области, так как система была изначально построена с этим подходом. Некоторые переменные достаточно часто встречаются в разных частях кода. Эта статья охватывает самые важные глобальные переменные.

Примечание: данный справочник также полезен для разработчиков тем. Вы можете использовать любую из этих глобальных переменных как глобальные теги шаблонов. Просто помните о синтаксисе CoTemplate. Например, переменная $usr['profile']['user_avatar'] в шаблоне будет заменена на {PHP.usr.profile.user_avatar}.

1. Класс фасада Cotonti

В системе есть хуки, которые срабатывают внутри системных функций, так что подключение некоторых файлов расширений выполняется в области функции. Исторически для доступа к системным переменным использовалась конструкция global. Однако это не всегда удобно. Поэтому был введён класс фасада Cotonti.

С версии 0.9.15 все основные глобальные переменные, такие как $cfg, $usr, $db, $id, $structure и другие, можно получить через класс фасада Cotonti. Таким образом, вам не нужно использовать ключевое слово global, достаточно использовать сам класс Cot вместо него.

Пример:

if ( cot::$cfg['plugin']['comments']['enabled'] ) { // какой-то код } 

Полный список доступных переменных через фасад: $cache, $cfg, $cot_extrafields, $db, $db_x, $env, $L, $out, $R, $structure, $sys, $usr.

2. Профиль текущего пользователя

Переменная $usr представляет текущего пользователя и является одной из самых популярных среди глобальных переменных.

Вы можете отличить зарегистрированных пользователей от гостей, проверив значение $usr['id']:

if ($usr['id'] > 0) { // Пользователь зарегистрирован } else { // Это гость } 
 

Вот список стандартных ключей этого массива:

  • $usr['id'] - уникальный номер пользователя в базе данных.
  • $usr['name'] - имя пользователя (логин).
  • $usr['maingrp'] - идентификатор основной группы пользователя, значение grp_id в таблице групп.
  • $usr['ip'] - IP-адрес текущего пользователя.
  • $usr['lang'] - предпочтение языка пользователя. Существует также глобальная переменная $lang, являющаяся сокращением.
  • $usr['theme'] - предпочтение темы пользователя.
  • $usr['scheme'] - предпочтение цветовой схемы пользователя.
  • $usr['timezone'] - смещение часового пояса пользователя в часах.
  • $usr['timezonename'] - название часового пояса пользователя.
  • $usr['lastvisit'] - метка времени последней активности пользователя на сайте.
  • $usr['lastlog'] - метка времени последнего входа пользователя.
  • $usr['level'] - уровень основной группы пользователя.
  • $usr['profile'] - массив, предоставляющий доступ ко всем полям в таблице пользователей, подробности ниже.

Вы можете использовать $usr['profile'] для получения значений полей профиля пользователя, включая дополнительные поля. Все они имеют префикс user_. Например, стандартные поля:

  • $usr['profile']['user_birthdate'] - дата рождения пользователя в формате MySQL.
  • $usr['profile']['user_country'] - двухбуквенный код страны пользователя в формате ISO.
  • $usr['profile']['user_email'] - электронная почта пользователя.
  • $usr['profile']['user_gender'] - пол пользователя: 'M' для мужчины, 'F' для женщины или 'U' для неопределённого.
  • $usr['profile']['user_hideemail'] - true, если пользователь предпочитает, чтобы его email оставался приватным (по умолчанию) или false, если его можно отображать.
  • $usr['profile']['user_logcount'] - количество входов пользователя.
  • $usr['profile']['user_regdate'] - метка времени регистрации пользователя.
  • $usr['profile']['user_text'] - текст подписи пользователя.

Если вы добавили дополнительное поле в таблицу пользователей, например "first_name", то оно будет доступно как $usr['profile']['user_first_name'].

3. Настройки текущего пользователя

Есть несколько глобальных переменных, которые содержат текущие значения настроек отображения для конкретного пользователя на текущий запрос:

  • $lang - текущий код языка.
  • $theme - текущая тема.
  • $scheme - текущая цветовая схема.

4. Конфигурационные переменные

Все конфигурационные переменные доступны через глобальную переменную $cfg. Она имеет несколько уровней вложенности:

  • $cfg['option_name'] - одно из основных настроек.
  • $cfg['module_name']['option_name'] - настройка для конкретного модуля.
  • $cfg['plugin']['plugin_name']['option_name'] - настройка для плагина.

5. Среда расширения

Массив $env содержит информацию о текущем расширении (модуле или плагине), а также статус запроса:

  • $env['type'] - 'module' для модулей или 'plug' для плагинов.
  • $env['ext'] - код расширения, например, 'forums'.
  • $env['location'] - строковое описание местоположения пользователя на сайте, например, 'Главная страница'.
  • $env['status'] - HTTP-статус ответа, например, '200 OK'.

6. Системные переменные

Есть временные системные переменные, которые используются в нескольких местах, и их пересчитывать каждый раз было бы нерационально. Эти переменные содержатся в глобальном массиве $sys. Вот некоторые из них:

  • $sys['now'] - метка времени текущего момента в UTC.
  • $sys['site_id'] - строка, уникальная для сайта, используется как его идентификатор.
  • $sys['parser'] - код для выбранного парсера.
  • $sys['xk'] - текущий токен CSRF-защиты, используется в формах.
  • $sys['noindex'] - если установлено в TRUE, текущая страница не будет индексироваться поисковыми системами.

Переменные, связанные с определением текущего URL и его частей:

  • $sys['scheme'] - схема URL, например, 'http' или 'https'.
  • $sys['secure'] - флаг, TRUE для HTTPS.
  • $sys['host'] - полный хост URL, например, 'my.example.com'.
  • $sys['domain'] - домен второго уровня URL, например, 'example.com'.
  • $sys['port'] - порт, если он отличается от 80.
  • $sys['site_uri'] - относительный путь от корня сайта на сервере.
  • $sys['abs_url'] - абсолютный URL до корня сайта.
  • $sys['canonical_url'] - канонический URL для текущей страницы.
  • $sys['uri_curr'] - текущий URI запроса.

7. Переменные вывода

Эти переменные используются для создания глобальных тегов, которые можно выводить в разных шаблонах. Они собираются в массиве $out. Вот некоторые стандартные элементы:

  • $out['uri'] - URI части текущего URL.
  • $out['notices_array'] - массив уведомлений пользователя.
  • $out['copyright'] - выводит ссылку "Powered by Cotonti".
  • $out['meta_contenttype'] - MIME-тип документа.
  • $out['logstatus'] - отображает статус входа пользователя.
  • $out['userlist'] - список онлайн-пользователей.
  • $out['subtitle'] - устанавливает часть тега <title>.
  • $out['meta_desc'] - устанавливает мета-описание страницы.
  • $out['meta_keywords'] - устанавливает мета-ключевые слова страницы.
  • $out['meta_lastmod'] - устанавливает дату последнего изменения страницы.
  • $out['adminpanel'] - ссылка на панель администратора для вошедших администраторов.
  • $out['loginout_url'] - URL для выхода пользователя.
  • $out['loginout'] - HTML-ссылка для выхода пользователя.
  • $out['profile'] - ссылка на настройки профиля текущего пользователя.
  • $out['guest_username'] - поле для ввода имени пользователя для гостей.
  • $out['guest_password'] - поле для ввода пароля для гостей.
  • $out['guest_cookiettl'] - флажок "запомнить меня" для гостей.
  • $out['guest_register'] - ссылка на регистрацию для гостей.

8. Дерево структуры

Всё дерево категорий сайта, управляемое через раздел "Администрирование / Структура", доступно через глобальную переменную $structure. Его структура выглядит так

$structure['module_name']['category_code'] 

Где 'module_name' — это код модуля, например, 'page', а 'category_code' — это код категории, например, 'articles'. Возвращаемый элемент — это ассоциативный массив, содержащий ключи:

  • 'path' - путь из кодов категорий.
  • 'tpath' - путь из названий категорий.
  • 'rpath' - путь в сыром виде.
  • 'id' - идентификатор категории.
  • 'title' - название категории.
  • 'desc' - описание категории.
  • 'icon' - путь к иконке категории.
  • 'locked' - если категория заблокирована для добавления новых элементов.
  • 'count' - количество элементов в категории.

Дополнительные поля структуры также доступны через $structure.

9. Доступ к базе данных и кешу

Есть две важные глобальные переменные:

  • $db - экземпляр класса CotDB, используемый для выполнения запросов к базе данных.
  • $cache - экземпляр класса Cache, используемый для работы с кешем.

10. Другие глобальные списки

Некоторые другие глобальные коллекции, которые могут быть полезны разработчикам расширений:

  • $cot_groups - информация о группах пользователей.
  • $cot_captcha - реестр функций CAPTCHA.
  • $cot_hash_funcs - реестр хеш-функций.
  • $cot_import_filters - массив пользовательских фильтров для cot_import().
  • $cot_mail_senders - пользовательские функции для отправки почты.
  • $cot_parsers - реестр пользовательских функций парсера.
  • $cot_url_appendix - параметры, добавляемые ко всем URL, если они присутствуют.
  • $cot_plugins_active - список активных плагинов.
  • $cot_modules - список активных модулей.
6 минут чтения Administrator

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

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

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

Administrator

Оффлайн

Administrator

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

  • Страница размещена: 12.03.2025 06:12
  • Последнее обновление: 18.03.2025 16:45

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

Справочник по глобальным переменным Cotonti 0.9.26 (PHP 8.4)
1 Данный документ представляет собой полный справочник по глобальным переменным Cotonti, доступным разработчикам модулей,
Документация по переменным пользователя и владельца контента в Cotonti 0.9.26
2 Документация по переменным пользователя и владельца контента в Cotonti 0.9.26ВведениеCotonti предоставляет глобальные
Основные теги в шаблоне forums.sections.tpl - Справочник
3 основные теги с префиксом FORUMS_SECTIONS_ROW_, их источники и практическое применение.Основные теги от функции