Справочник по глобальным переменным в 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- список активных модулей.
Комментарии (0)
Автор контента
Оффлайн
Administrator
Последняя авторизация: 05.07.2026 18:32
- Страница размещена: 12.03.2025 06:12
- Последнее обновление: 18.03.2025 16:45