Теги ядра: что выводит каждый
Все теги ядра: сайт, страница, человек, поиск, настройки — с примерами и условиями.
Теги, которые работают в любом файле тегов темы (*.tpl.html) или в отдельных видах. Страница собрана из единого каталога тегов — тот же список виден подсказками в «Редакторе тем»; рукописной копии нет и разойтись они не могут. Теги модулей (список записей, обсуждение, загрузки, баннеры…) — на странице «Вывод модулей на сайте» и в «Видах на тегах».
Сайт и рамка страницы
| Вставка | Вид | Что выводит | Где работает |
|---|---|---|---|
{site_name} | значение | Название сайта из «Настройки → Общие». | везде |
{locale} | значение | Код языка страницы. | везде |
{word:theme::shelf.popular} | значение | Слово на языке посетителя по ключу: слово ядра, модуля (модуль::ключ) или самой темы (файл слов темы). Нет слова — пусто. | везде |
{year} | значение | Текущий год, для подвала с правами. | везде |
{home} | адрес | Адрес главной страницы. | везде |
{canonical} | адрес | Основной адрес этой страницы (тот, что оставит поисковик). | везде |
[if:rss_url]<a href="{rss_url}">RSS</a>[/if] | адрес | Адрес ленты сайта (RSS) для места в теме: сначала новости, затем форум; пусто, если ни у одного модуля нет ленты. Ссылку на ленту в заголовок страницы движок кладёт сам. | везде |
{theme} | адрес | Адрес папки файлов темы (картинки, стили). | везде |
{content} | разметка | Содержимое страницы в контейнере движка: не вылезает за экран. Берите для кабинета, форума и форм. | везде |
{content_raw} | разметка | Содержимое без обёртки и без ограничения ширины, только для своих полностраничных раскладок. | везде |
{languages} | блок | Выбор языка (готовый блок). | везде |
{search} | блок | Строка поиска (готовый блок). | везде |
{login} | блок | Готовый блок «Войти / Регистрация» или имя вошедшего. | везде |
{poll} | блок | Текущий опрос сайта. | везде |
{logout_button} | кнопка | Кнопка «Выйти» с ключом защиты (выход — форма, ссылкой ключ не передать). | везде |
{menu_toggle} | блок | Кнопка «Меню» и меню разделов, которое на телефоне открывается кнопкой. | везде |
{user_menu} | блок | Меню участника: профиль, сообщения, панель, выход. | везде |
{color_scheme_toggle} | блок | Кнопка «светлая / тёмная / авто». Показывается, только если у темы есть вторая палитра и в настройках включён «Переключатель схемы в шапке». | везде |
{theme_choice} | блок | Выбор вида сайта: меню из тем, которые разрешил владелец; посетитель сам выбирает, как выглядит сайт. Пусто, если выбор выключен в настройках или тема одна. | везде |
{info} | блок | Сообщения «сохранено», «ошибка», «обратите внимание» после действия. Если в раскладке нет {info}, движок сам ставит их перед {content}. Условие [if:info]…[/if] — выводить только когда сообщения есть. | везде |
{part:sidebar title="Новинки"} | место | Кусок самой темы (файл views/partials/имя.tpl.html) в любом месте шаблона: {part:имя} или {part:имя ключ=значение}; внутри куска {param.ключ} даёт значение, а в значении можно писать теги: t="{item.title}". Внутри цикла кусок видит текущий элемент. Куски вкладываются до трёх уровней; нет куска — пусто. | везде |
{region:sidebar} | место | Блоки модулей, поставленные в это место темы. Места: header, before_content, sidebar, after_content, footer, head_actions. | везде |
[each:menu]<a href="{item.url}">{item.title}</a>[/each] | повтор | Пункты меню сайта. Внутри: название пункта, адрес, признак «текущий». | везде |
Посетитель и вход
| Вставка | Вид | Что выводит | Где работает |
|---|---|---|---|
[if:user.logged]…[else]…[/if] | условие | Условие: посетитель вошёл. С веткой «иначе» — другой текст для гостя. | везде |
{user.name} | значение | Имя вошедшего. | везде |
{user.url} | адрес | Адрес профиля вошедшего. | везде |
{user.login_url} | адрес | Адрес страницы входа. | везде |
{user.register_url} | адрес | Адрес страницы регистрации. | везде |
{user.forgot_url} | адрес | Адрес восстановления пароля. | везде |
[if:user.avatar]<img src="{user.avatar}" alt="">[/if] | адрес | Адрес аватара; пусто, если его нет (оберните в условие). | везде |
{user.role} | значение | Название роли вошедшего. | везде |
[if:user.role=editor]…[/if] | значение | Машинное имя роли (не переводится, не меняется): сравнивайте его в условии, несколько имён через запятую, например editor,admin. | везде |
[if:user.pm_unread]{user.pm_unread}[/if] | значение | Число непрочитанных личных сообщений; пусто, если модуль «Сообщения» выключен. | везде |
{user.pm_total} | значение | Число всех личных сообщений человека (не только непрочитанных); пусто, если модуль «Сообщения» выключен. | везде |
{user.pm_url} | адрес | Адрес личных сообщений. | везде |
{user.favorites_count} | значение | Число закладок. | везде |
{user.favorites_url} | адрес | Адрес закладок. | везде |
[if:user.can_admin]<a href="{user.admin_url}">…</a>[/if] | адрес | Адрес панели управления; пусто для тех, кого в неё не пускают. | везде |
[if:user.can_admin]…[/if] | условие | Условие: вошедшего пускают в панель управления. | везде |
{user.field:имя} | значение | Своё поле профиля вошедшего (поля заводит владелец); гостю и неизвестному полю — пусто. | везде |
Профиль человека и кабинет
| Вставка | Вид | Что выводит | Где работает |
|---|---|---|---|
{profile.name} | значение | Имя человека, чья это страница. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
@{profile.username} | значение | Логин человека (показывается как @логин). | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
{profile.url} | адрес | Адрес публичной страницы человека. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.avatar]<img src="{profile.avatar}" alt="">[/if] | адрес | Адрес аватара; пусто, если аватара нет. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.bio]<p>{profile.bio}</p>[/if] | значение | Текст «о себе» (простой текст); пусто, если не заполнен. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.location]<p>{profile.location}</p>[/if] | значение | Место жительства из профиля (обычный текст); пусто, если не заполнено. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.joined]{profile.joined}[/if] | значение | Дата регистрации; пусто, если человек её скрыл. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.last_seen]{profile.last_seen}[/if] | значение | Последний вход; пусто, если человек скрыл активность. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.own]<a href="{profile.edit_url}">…</a>[/if] | адрес | Адрес «изменить профиль»; только на своей странице. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.own]<a href="{profile.security_url}">…</a>[/if] | адрес | Адрес страницы безопасности учётной записи (пароль, двухэтапный вход). Только на своей странице; у чужой пусто. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.own]<a href="{profile.devices_url}">…</a>[/if] | адрес | Адрес страницы с устройствами, на которых выполнен вход (где вы вошли, закрыть другие входы). Только на своей странице. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.own]<a href="{profile.mail_url}">…</a>[/if] | адрес | Адрес страницы настроек почты (что сайт может вам присылать). Только на своей странице. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.own]<a href="{profile.privacy_url}">…</a>[/if] | адрес | Адрес страницы приватности (скачать свои данные, стереть учётную запись). Только на своей странице. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.own]<a href="{profile.notifications_url}">…</a>[/if] | адрес | Адрес страницы уведомлений. Только на своей странице. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.muted]…[/if] | условие | Условие: модератор запретил этой учётной записи публиковать (записи и комментарии), запрет действует сейчас. Только на своей странице. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.muted_until]{profile.muted_until}[/if] | значение | Когда закончится запрет публикаций (день.месяц.год часы:минуты); пусто, если запрет бессрочный или его нет. Только на своей странице. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.manage]<a href="{profile.manage_url}">…</a>[/if] | условие | Условие: вы смотрите чужую страницу и вправе править людей в панели (сотрудник). Для гостей, обычных участников и на своей странице пусто. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.manage]<a href="{profile.manage_url}">…</a>[/if] | адрес | Адрес карточки этого человека в панели (блокировка, запрет публикаций, роли). Только для сотрудника на чужой странице. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.two_factor]…[else]…[/if] | условие | Условие: у этой учётной записи включён двухэтапный вход. Только на своей странице. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.signature]{profile.signature}[/if] | разметка | Подпись человека (короткая строка под его записями), если подписи включены в настройках; иначе пусто. Готовый безопасный HTML: не вставляйте его в атрибут и не оборачивайте своим экранированием. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
{profile.mail} | значение | Ваша собственная почта; только в кабинете, на чужой странице её нет. | auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.group=editor]…[/if] | значение | Первая роль подписью; для условия — машинное имя: [if:profile.group=editor] (несколько через запятую). | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.own]…[else]…[/if] | условие | Условие: это собственная страница посетителя. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.online]…[/if] | условие | Условие: человек был на сайте в последние 5 минут (если активность не скрыта). | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.field:имя]{profile.field:имя}[/if] | значение | Открытое поле профиля: {profile.field:ключ}; пусто, если не заполнено. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[if:profile.count:comments>0]{profile.count:comments}[/if] | значение | Число от модуля: {profile.count:news}, {profile.count:comments}; работает в условиях: [if:profile.count:comments>10]. Только на своей странице и в кабинете; на чужой странице пусто. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[each:profile.roles]{item.title} [/each] | повтор | Роли человека: {item.title}, {item.name} (машинное имя). | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[each:profile.links]<a href="{item.url}">{item.title}</a> [/each] | повтор | Ссылки, которые дал человек (сайт, GitHub…): {item.title}, {item.url}, {item.kind}. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[each:profile.fields]{item.label}: {item.value} [/each] | повтор | Все открытые заполненные поля профиля: {item.label}, {item.value}, {item.url} (у ссылок), {item.key}. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[each:profile.stats]{item.title}: {item.value} [/each] | повтор | Сводка, которую добавляют модули (записи, комментарии…): {item.title}, {item.value}; только если человек показывает активность. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
[each:profile.actions]<a href="{item.url}">{item.title}</a> [/each] | повтор | Кнопки, которые модули ставят на страницу («Написать», «В закладки»): {item.title}, {item.url}. | auth/public-profile, auth/profile, auth/profile-dashboard, auth/profile-security, auth/profile-sessions, auth/profile-privacy |
Служебные страницы
| Вставка | Вид | Что выводит | Где работает |
|---|---|---|---|
{status} | значение | Код ответа (403, 404, 500, 503). | errors/maintenance, errors/error, errors/403, errors/404, errors/500, errors/503 |
{message} | разметка | Текст для посетителя. На странице обслуживания — текст владельца с разметкой движка. | errors/maintenance, errors/error, errors/403, errors/404, errors/500, errors/503 |
[if:reference]{reference}[/if] | значение | Номер происшествия для журнала (пусто, если нет); его можно назвать владельцу. | errors/maintenance, errors/error, errors/403, errors/404, errors/500, errors/503 |
[if:until]{until}[/if] | значение | Когда обещают вернуться (страница обслуживания); пусто, если владелец не указал. | errors/maintenance |
{reason} | значение | Причина голым текстом: текст обслуживания или причина запрета. | errors/maintenance, errors/error, errors/403, errors/404, errors/500, errors/503 |
{description} | значение | Причина запрета (то же, что {reason} на странице отказа). | errors/maintenance, errors/error, errors/403, errors/404, errors/500, errors/503 |
{end} | значение | Когда закончится запрет или откроется сайт — датой. | errors/maintenance, errors/error, errors/403, errors/404, errors/500, errors/503 |
[if:ban]…[else]…[/if] | условие | Условие: посетителю отказано по чёрному списку (тогда доступны причина и даты). | errors/maintenance, errors/error, errors/403, errors/404, errors/500, errors/503 |
{ban.reason} | значение | Причина, записанная в чёрном списке. | errors/maintenance, errors/error, errors/403, errors/404, errors/500, errors/503 |
{ban.until} | значение | Конец запрета датой; пусто, если запрет бессрочный. | errors/maintenance, errors/error, errors/403, errors/404, errors/500, errors/503 |
{ban.from} | значение | Когда запрет поставлен — датой. | errors/maintenance, errors/error, errors/403, errors/404, errors/500, errors/503 |
{ban.address} | значение | Адрес самого посетителя, который закрыт. | errors/maintenance, errors/error, errors/403, errors/404, errors/500, errors/503 |
{ban_from} | значение | Когда запрет поставлен (то же, что {ban.from}). | errors/maintenance, errors/error, errors/403, errors/404, errors/500, errors/503 |
Страница, рубрика, крошки
| Вставка | Вид | Что выводит | Где работает |
|---|---|---|---|
{page.title} | значение | Название этой страницы, как во вкладке браузера. | везде |
{page.description} | значение | Описание этой страницы, как оно отдаётся поисковику. | везде |
[if:page.route=news.show]…[/if] | значение | Имя маршрута страницы; сравните его в условии, чтобы показать что-то только на одном виде страниц. | везде |
[if:page.home]…[else]…[/if] | условие | Условие: это главная страница. | везде |
{page.path} | значение | Адрес страницы без домена. | везде |
[if:page.number]стр. {page.number}[/if] | значение | Номер страницы листания (?page=N); на первой странице и там, где листания нет, пусто. Работает и условием: [if:page.number>1]. | везде |
[if:page.sort=old]…[/if] | значение | Порядок, который выбрал посетитель (?sort=слово), только буквы, цифры, «-» и «_»; пусто, если не выбирал. Работает и условием: [if:page.sort=old]. | везде |
[if:module.имя]…[/if] | условие | Условие: модуль включён (любое имя из папки модулей). | везде |
{category.title} | значение | Название текущей рубрики, если модуль её назвал. | везде |
{category.url} | адрес | Адрес текущей рубрики. | везде |
{category.key} | значение | Короткое имя текущей рубрики. | везде |
{category.description} | значение | Описание текущей рубрики (обычный текст), если модуль его дал. | везде |
[each:crumbs]<a href="{item.url}">{item.title}</a>[/each] | повтор | Хлебные крошки: «Главная» и цепочка модуля. Внутри: название, адрес, признак последнего пункта. | везде |
[if:search.sections]<nav>[each:search.sections]<a href="{item.url}"[if:item.active] aria-current="true"[/if]>{item.title} {item.count}</a> [/each]</nav>[/if] | повтор | Ряд разделов поиска («Везде / Новости / Магазин…»): {item.title} (название раздела), {item.url} (поиск в этом разделе с тем же запросом и отборами), {item.count} (находок; пусто, если не считали), {item.active} (выбранный), {item.empty} (находок нет). Пусто, если запроса нет, нигде ничего не нашлось и раздел не выбирали. | search |
{search.everywhere_url} | адрес | Адрес поиска по всему сайту с тем же запросом и отборами (пункт «Везде» ряда разделов). | search |
{search.everywhere_total} | значение | Число находок по всему сайту. | search |
[if:search.everywhere_active]…[/if] | условие | Условие: поиск идёт по всему сайту (раздел не выбран). | search |
[if:search.found_line]{search.found_line}[/if] | значение | Строка «Найдено: N» (со склонением). Только когда есть результаты. | search |
[if:search.capped]{search.capped}[/if] | значение | Пометка, что показаны только первые результаты (поиск упёрся в предел); иначе пусто. | search |
[if:search.nothing]{search.nothing}[/if] | значение | Строка «По запросу … ничего не нашлось» с самим запросом. Только когда ничего не нашлось. | search |
[if:search.nothing_hint]{search.nothing_hint}[/if] | значение | Совет под «ничего не нашлось» (проверьте написание, попробуйте другие слова). Только когда ничего не нашлось. | search |
[if:search.corrected]{search.corrected}[/if] | значение | Пометка, что запрос исправлен из-за опечатки («Показаны результаты по …»); иначе пусто. | search |
[if:search.try_everywhere_url]<a href="{search.try_everywhere_url}">…</a>[/if] | адрес | Адрес повторного поиска по всему сайту (когда выбран раздел); пусто, если поиск и так по всему сайту. | search |
[each:search.popular]<a href="{item.url}">{item.title}</a> [/each] | повтор | Частые запросы-подсказки при пустой выдаче: {item.title}, {item.url}. Пусто, если их нет. | search |
{search.pager} | разметка | Готовое листание страниц результатов («1 2 3 …»). Только когда страниц больше одной. Готовая разметка. | search |
Кто пришёл
| Вставка | Вид | Что выводит | Где работает |
|---|---|---|---|
[if:visitor.country=UA]…[/if] | значение | Код страны посетителя («UA») из заголовка сети доставки или локальной базы адресов; пусто, если неизвестна. | везде |
[if:visitor.mobile]…[/if] | условие | Условие: посетитель с телефона (по строке браузера). | везде |
[if:visitor.tablet]…[/if] | условие | Условие: посетитель с планшета. | везде |
[if:visitor.desktop]…[/if] | условие | Условие: посетитель с компьютера. | везде |
{visitor.device} | значение | Тип устройства посетителя: телефон, планшет или компьютер. | везде |
{visitor.os} | значение | Система посетителя: ios, android, windows, macos, linux, tv или other (по строке браузера). | везде |
[if:visitor.ios]…[/if] | условие | Условия по системе: visitor.ios, visitor.android, visitor.windows, visitor.macos, visitor.linux, visitor.tv (телевизор и приставка проверяются первыми). | везде |
[if:visitor.lang=ru]…[/if] | значение | Основной язык браузера посетителя двумя буквами (ru, uk, en…); пусто, если неизвестен. Не то же самое, что язык страницы. | везде |
Кабинет
| Вставка | Вид | Что выводит | Где работает |
|---|---|---|---|
[if:propose_url]<a href="{propose_url}">…</a>[/if] | адрес | Ссылка «Предложить запись»; пусто, если модуль или настройка выключены. | везде |
{social_login} | блок | Готовые кнопки «Войти через …» (только включённые сети; ключей приложения на странице нет); пусто, если сетей нет. | везде |
[if:social.any]…[/if] | условие | Условие: включена хотя бы одна сеть входа. | везде |
[if:social.google]<a href="{social.google.url}">{social.google.title}</a>[/if] | условие | Конкретная сеть (google, github, yandex, vk, facebook, mailru): включена ли, адрес начала входа и её название. | везде |
{social_profile} | блок | Блок «Привязанные сервисы» для кабинета: привязать и отвязать по паролю; гостю пусто. | везде |
Формы по частям
| Вставка | Вид | Что выводит | Где работает |
|---|---|---|---|
{form} | блок | Готовая форма вида с полями и ключом защиты (первая форма; вторая — form:2). | везде |
{form_open} | место | Открытие формы с её адресом и скрытыми полями; ключ защиты — там. | везде |
{field:имя} | место | Значение дополнительного поля по его имени: {field:имя}; [if:field:имя]…[/if] показывает блок, только когда поле заполнено; [each:field:имя]…[/each] для списков. Пустое поле не выводит ничего. | везде |
{submit} | место | Кнопка отправки формы. | везде |
{form_close} | место | Закрытие формы. | везде |
{t.title} | слово | Слово интерфейса этого вида на языке страницы: t.title, t.lead, t.submit и другие. | везде |
Дополнительные поля
| Вставка | Вид | Что выводит | Где работает |
|---|---|---|---|
{fieldlabel:имя} | значение | Подпись дополнительного поля. Пусто, если поле не заполнено, чтобы «Режиссёр:» не висел без значения. | везде |
{fields} | блок | Готовый список всех заполненных дополнительных полей записи («подпись — значение»); если ни одно не заполнено — не выводит ничего. Берите, когда не хотите ставить каждое поле вручную. | везде |
Условия и повторы
| Вставка | Вид | Что выводит | Где работает |
|---|---|---|---|
[if:имя]…[else]…[/if] | условие или повтор | Условие: кусок показывается, только если значение не пусто; «else» — вторая ветка. | везде |
[each:имя]{item.title}[/each] | условие или повтор | Повтор для каждого элемента списка; внутри поля элемента — item.имя. | везде |
{item.имя} | условие или повтор | Поле текущего элемента списка (название, адрес и другие; какие — говорит список). | везде |
{index} | условие или повтор | Номер текущего элемента списка, с единицы. | везде |
{title limit=60 wordsafe=1} | условие или повтор | Обрезка текста у любого тега, что выводит текст: limit=N (знаки), words=N (слова), wordsafe=1 (не рвать слово). Обрезанный текст кончается «…». | везде |
{date=d.m.Y H:i} | условие или повтор | Дата записи в своём формате: date=d.m.Y H:i (и edit-date=… для даты последней правки). Буквы: d j m n M Y y H i s F. | везде |
Обновлено 16.10.2026
Пока никто не высказался. Будьте первым.