Справочник шаблонов Cotonti: имена, назначение и примеры вызова пользовательской функции

Справочник поможет быстро сориентироваться в структуре шаблонов вашего сайта и правильно использовать функцию cot_tpl_url() в коде.

20.08.2026 12:32 · Опубликована
8 min read
483
0

Справочник шаблонов Cotonti: имена, назначение и примеры вызова пользовательской функции

Введение

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

  • Быстро находить нужный файл для редактирования;
  • Правильно использовать функцию cot_tpl_url() для получения пути к шаблону;
  • Создавать новые шаблоны, следуя стандартам именования Cotonti;
  • Эффективно отлаживать вёрстку, понимая, какой шаблон отвечает за конкретную страницу или блок.

В этом справочнике собраны все основные имена шаблонов, их назначение и примеры вызова функции cot_tpl_url() для различных типов расширений. Материал разделён по категориям для удобства поиска:

  • Модули (module) — основные разделы сайта (страницы, форум, пользователи и т.д.);
  • Плагины (plug) — дополнительные функциональные блоки;
  • Ядро (core) — системные шаблоны, используемые на всех страницах;
  • Админ-панель — шаблоны для управления сайтом.

Справочник поможет быстро сориентироваться в структуре шаблонов вашего сайта и правильно использовать функцию cot_tpl_url() в коде.


Оглавление


Общий синтаксис

{PHP|cot_tpl_url('имя_шаблона', 'тип', admin)}
  • 'имя_шаблона' — строковое имя файла без расширения .tpl (части разделяются точкой). Например, 'page.list'.
  • 'тип' — тип расширения: 'module' (по умолчанию), 'plug', 'core'.
  • admin — логический флаг: true для админ-шаблонов (ищет в папке админ-темы), иначе можно не указывать или передать false/null.

Важно для cot_tpl_url(): эта функция принимает только строковые аргументы (имя шаблона, тип, флаг). Передавать в неё массив нельзя. Если имя шаблона формируется динамически в PHP, вычислите его заранее и передайте в шаблон как обычную переменную через $t->assign():

$tpl_url = cot_tpl_url($dynamic_name, 'module');
$t->assign('DYNAMIC_TPL_URL', $tpl_url);

В шаблоне используйте {DYNAMIC_TPL_URL}.

Важно: в сами шаблонные переменные (не в cot_tpl_url()) можно передавать массивы и объекты – они поддерживаются через точечную нотацию ({user.name}) и циклы FOR. Ограничение на массивы относится только к аргументам функции cot_tpl_url(), а не к шаблонным данным в целом.


Шаблоны модулей

Page (страницы)

  • page.tpl — отображает одну страницу сайта: заголовок, текст, автора, дату и комментарии.
    {PHP|cot_tpl_url('page')}
  • page.list.tpl — выводит список страниц внутри выбранной категории с пагинацией.
    {PHP|cot_tpl_url('page.list')}
  • page.add.tpl — показывает форму добавления новой страницы пользователем.
    {PHP|cot_tpl_url('page.add')}
  • page.edit.tpl — показывает форму редактирования существующей страницы.
    {PHP|cot_tpl_url('page.edit')}

Forums (форум)

  • forums.sections.tpl — выводит список всех разделов форума с количеством тем и сообщений.
    {PHP|cot_tpl_url('forums.sections')}
  • forums.topics.tpl — отображает список тем в выбранном разделе форума.
    {PHP|cot_tpl_url('forums.topics')}
  • forums.posts.tpl — показывает сообщения внутри конкретной темы форума.
    {PHP|cot_tpl_url('forums.posts')}
  • forums.newtopic.tpl — отображает форму создания новой темы в разделе форума.
    {PHP|cot_tpl_url('forums.newtopic')}
  • forums.editpost.tpl — показывает форму редактирования отдельного сообщения форума.
    {PHP|cot_tpl_url('forums.editpost')}

Users (пользователи)

  • users.details.tpl — выводит подробную информацию о пользователе: профиль, статистику, контакты.
    {PHP|cot_tpl_url('users.details')}
  • users.edit.tpl — отображает форму редактирования данных профиля пользователя.
    {PHP|cot_tpl_url('users.edit')}
  • users.register.tpl — показывает форму регистрации нового аккаунта.
    {PHP|cot_tpl_url('users.register')}
  • users.profile.tpl — отображает публичный профиль пользователя для просмотра другими.
    {PHP|cot_tpl_url('users.profile')}
  • users.passrecover.tpl — выводит форму восстановления забытого пароля.
    {PHP|cot_tpl_url('users.passrecover')}

PM (личные сообщения)

  • pm.list.tpl — показывает список входящих и исходящих личных сообщений пользователя.
    {PHP|cot_tpl_url('pm.list')}
  • pm.message.tpl — отображает содержимое одного личного сообщения.
    {PHP|cot_tpl_url('pm.message')}
  • pm.send.tpl — выводит форму отправки нового личного сообщения.
    {PHP|cot_tpl_url('pm.send')}

PFS (файловый менеджер)

  • pfs.tpl — основной интерфейс файлового менеджера: список файлов и папок, загрузка.
    {PHP|cot_tpl_url('pfs')}
  • pfs.view.tpl — отображает содержимое конкретного файла или папки в файловом менеджере.
    {PHP|cot_tpl_url('pfs.view')}

Polls (опросы)

  • polls.tpl — выводит опрос с вариантами ответов и результатами голосования.
    {PHP|cot_tpl_url('polls')}

RSS

  • rss.tpl — формирует RSS-ленту последних материалов сайта.
    {PHP|cot_tpl_url('rss')}

Index

  • index.tpl — главная страница сайта, обычно выводит последние материалы и виджеты.
    {PHP|cot_tpl_url('index')}

Шаблоны плагинов

Для плагинов обязательно указывайте тип 'plug'.

Recent Items

  • recentitems.tpl — выводит список недавно добавленных или обновлённых материалов сайта.
    {PHP|cot_tpl_url('recentitems', 'plug')}

Comments

  • comments.tpl — отображает все комментарии к конкретному материалу с формой добавления.
    {PHP|cot_tpl_url('comments', 'plug')}
  • comments.edit.tpl — показывает форму редактирования отдельного комментария.
    {PHP|cot_tpl_url('comments.edit', 'plug')}

Tags

  • tags.tpl — выводит облако тегов или список материалов, связанных с выбранным тегом.
    {PHP|cot_tpl_url('tags', 'plug')}

Sitemap

  • sitemap.tpl — отображает карту сайта со ссылками на все разделы и материалы.
    {PHP|cot_tpl_url('sitemap', 'plug')}
  • sitemap.index.tpl — показывает индекс карты сайта для разбивки на несколько страниц.
    {PHP|cot_tpl_url('sitemap.index', 'plug')}

Ratings

  • ratings.tpl — выводит рейтинг материалов и элементы управления для голосования.
    {PHP|cot_tpl_url('ratings', 'plug')}

Contact

  • contact.tpl — отображает контактную форму для отправки сообщений администрации.
    {PHP|cot_tpl_url('contact', 'plug')}

Hits

  • hits.admin.tpl — админ-панель статистики посещений: графики, счётчики, отчёты.
    {PHP|cot_tpl_url('hits.admin', 'plug', true)}

Banlist

  • banlist.admin.tpl — админ-панель управления заблокированными пользователями и IP-адресами.
    {PHP|cot_tpl_url('banlist.admin', 'plug', true)}

Системные шаблоны (ядро core)

  • header.tpl — общая шапка сайта: логотип, меню, мета-теги, подключается на всех страницах.
    {PHP|cot_tpl_url('header', 'core')}
  • footer.tpl — общий подвал сайта: копирайт, дополнительные ссылки, скрипты, подключается на всех страницах.
    {PHP|cot_tpl_url('footer', 'core')}
  • message.tpl — выводит системные сообщения, ошибки и уведомления пользователю.
    {PHP|cot_tpl_url('message', 'core')}

Шаблоны админ-панели

Ядро админки

  • admin.home.tpl — главная страница административной панели с обзором системы.
    {PHP|cot_tpl_url('admin.home', 'core', true)}
  • admin.main.tpl — основной каркас админ-панели: общая разметка, меню, сайдбар.
    {PHP|cot_tpl_url('admin.main', 'core', true)}
  • admin.config.tpl — страница настройки основных параметров сайта.
    {PHP|cot_tpl_url('admin.config', 'core', true)}
  • admin.extensions.tpl — управление установленными модулями и плагинами: включение, отключение, настройка.
    {PHP|cot_tpl_url('admin.extensions', 'core', true)}
  • admin.users.tpl — управление пользователями: редактирование, блокировка, удаление аккаунтов.
    {PHP|cot_tpl_url('admin.users', 'core', true)}
  • admin.structure.tpl — управление структурой сайта: категории, разделы, их порядок и параметры.
    {PHP|cot_tpl_url('admin.structure', 'core', true)}
  • admin.extrafields.tpl — настройка дополнительных полей для различных сущностей.
    {PHP|cot_tpl_url('admin.extrafields', 'core', true)}
  • admin.cache.tpl — управление кэшем сайта: очистка, настройка времени хранения.
    {PHP|cot_tpl_url('admin.cache', 'core', true)}
  • admin.cache.disk.tpl — подробности о кэше на диске: просмотр и очистка отдельных файлов кэша.
    {PHP|cot_tpl_url('admin.cache.disk', 'core', true)}
  • admin.log.tpl — просмотр журнала событий системы: действия пользователей, ошибки.
    {PHP|cot_tpl_url('admin.log', 'core', true)}
  • admin.rights.tpl — настройка прав доступа для групп пользователей.
    {PHP|cot_tpl_url('admin.rights', 'core', true)}
  • admin.rightsbyitem.tpl — детальная настройка прав доступа для конкретного элемента сайта.
    {PHP|cot_tpl_url('admin.rightsbyitem', 'core', true)}
  • admin.other.tpl — прочие административные настройки, не вошедшие в другие разделы.
    {PHP|cot_tpl_url('admin.other', 'core', true)}
  • admin.phpinfo.tpl — вывод информации о PHP-конфигурации сервера.
    {PHP|cot_tpl_url('admin.phpinfo', 'core', true)}
  • admin.infos.tpl — отображение сводной информации о системе и окружении Cotonti.
    {PHP|cot_tpl_url('admin.infos', 'core', true)}

Админ-шаблоны модулей

  • page.admin.tpl — админ-панель управления страницами: массовые операции, категории.
    {PHP|cot_tpl_url('page.admin', 'module', true)}
  • forums.admin.tpl — админ-панель управления форумом: разделы, темы, модерация.
    {PHP|cot_tpl_url('forums.admin', 'module', true)}
  • polls.admin.tpl — админ-панель управления опросами: создание и редактирование.
    {PHP|cot_tpl_url('polls.admin', 'module', true)}
  • pfs.admin.tpl — админ-панель файлового менеджера: настройки, ограничения.
    {PHP|cot_tpl_url('pfs.admin', 'module', true)}

Админ-шаблоны плагинов

  • recentitems.admin.tpl — админ-панель плагина Recent Items: настройка вывода последних материалов.
    {PHP|cot_tpl_url('recentitems.admin', 'plug', true)}
  • comments.admin.tpl — админ-панель плагина Comments: модерация комментариев.
    {PHP|cot_tpl_url('comments.admin', 'plug', true)}
  • tags.tools.tpl — инструменты плагина Tags: массовое управление тегами.
    {PHP|cot_tpl_url('tags.tools', 'plug', true)}

Сводная таблица шаблонов

КатегорияИмя шаблонаНазначениеПример вызова
Page (страницы)page.tplОтображение одной страницы сайта{PHP|cot_tpl_url('page')}
page.list.tplСписок страниц в категории{PHP|cot_tpl_url('page.list')}
page.add.tplФорма добавления новой страницы{PHP|cot_tpl_url('page.add')}
page.edit.tplФорма редактирования страницы{PHP|cot_tpl_url('page.edit')}
Forums (форум)forums.sections.tplСписок разделов форума{PHP|cot_tpl_url('forums.sections')}
forums.topics.tplСписок тем в разделе{PHP|cot_tpl_url('forums.topics')}
forums.posts.tplСообщения внутри темы{PHP|cot_tpl_url('forums.posts')}
forums.newtopic.tplФорма создания новой темы{PHP|cot_tpl_url('forums.newtopic')}
forums.editpost.tplФорма редактирования сообщения{PHP|cot_tpl_url('forums.editpost')}
Users (пользователи)users.details.tplПодробный профиль пользователя{PHP|cot_tpl_url('users.details')}
users.edit.tplФорма редактирования профиля{PHP|cot_tpl_url('users.edit')}
users.register.tplФорма регистрации аккаунта{PHP|cot_tpl_url('users.register')}
users.profile.tplПубличный профиль пользователя{PHP|cot_tpl_url('users.profile')}
users.passrecover.tplФорма восстановления пароля{PHP|cot_tpl_url('users.passrecover')}
PM (личные сообщения)pm.list.tplСписок личных сообщений{PHP|cot_tpl_url('pm.list')}
pm.message.tplСодержимое одного сообщения{PHP|cot_tpl_url('pm.message')}
pm.send.tplФорма отправки сообщения{PHP|cot_tpl_url('pm.send')}
PFS (файловый менеджер)pfs.tplОсновной интерфейс файлового менеджера{PHP|cot_tpl_url('pfs')}
pfs.view.tplПросмотр содержимого файла/папки{PHP|cot_tpl_url('pfs.view')}
Polls (опросы)polls.tplОпрос с вариантами ответов{PHP|cot_tpl_url('polls')}
RSSrss.tplRSS-лента последних материалов{PHP|cot_tpl_url('rss')}
Indexindex.tplГлавная страница сайта{PHP|cot_tpl_url('index')}
Плагиныrecentitems.tplСписок недавно добавленных материалов{PHP|cot_tpl_url('recentitems', 'plug')}
comments.tplКомментарии с формой добавления{PHP|cot_tpl_url('comments', 'plug')}
comments.edit.tplФорма редактирования комментария{PHP|cot_tpl_url('comments.edit', 'plug')}
tags.tplОблако тегов или список по тегу{PHP|cot_tpl_url('tags', 'plug')}
sitemap.tplКарта сайта{PHP|cot_tpl_url('sitemap', 'plug')}
sitemap.index.tplИндекс карты сайта{PHP|cot_tpl_url('sitemap.index', 'plug')}
ratings.tplРейтинг материалов{PHP|cot_tpl_url('ratings', 'plug')}
contact.tplКонтактная форма{PHP|cot_tpl_url('contact', 'plug')}
Ядро (core)header.tplШапка сайта{PHP|cot_tpl_url('header', 'core')}
footer.tplПодвал сайта{PHP|cot_tpl_url('footer', 'core')}
message.tplСистемные сообщения и ошибки{PHP|cot_tpl_url('message', 'core')}
Админ-панель (core, admin=true)admin.home.tplГлавная страница админ-панели{PHP|cot_tpl_url('admin.home', 'core', true)}
admin.main.tplОсновной каркас админ-панели{PHP|cot_tpl_url('admin.main', 'core', true)}
admin.config.tplНастройка параметров сайта{PHP|cot_tpl_url('admin.config', 'core', true)}
admin.extensions.tplУправление модулями и плагинами{PHP|cot_tpl_url('admin.extensions', 'core', true)}
admin.users.tplУправление пользователями{PHP|cot_tpl_url('admin.users', 'core', true)}
admin.structure.tplУправление структурой сайта{PHP|cot_tpl_url('admin.structure', 'core', true)}
admin.extrafields.tplНастройка дополнительных полей{PHP|cot_tpl_url('admin.extrafields', 'core', true)}
admin.cache.tplУправление кэшем{PHP|cot_tpl_url('admin.cache', 'core', true)}
admin.cache.disk.tplДетали дискового кэша{PHP|cot_tpl_url('admin.cache.disk', 'core', true)}
admin.log.tplЖурнал событий системы{PHP|cot_tpl_url('admin.log', 'core', true)}
admin.rights.tplНастройка прав доступа{PHP|cot_tpl_url('admin.rights', 'core', true)}
admin.rightsbyitem.tplПрава для конкретного элемента{PHP|cot_tpl_url('admin.rightsbyitem', 'core', true)}
admin.other.tplПрочие административные настройки{PHP|cot_tpl_url('admin.other', 'core', true)}
admin.phpinfo.tplИнформация о PHP{PHP|cot_tpl_url('admin.phpinfo', 'core', true)}
admin.infos.tplСводная информация о системе{PHP|cot_tpl_url('admin.infos', 'core', true)}
Админ-шаблоны модулейpage.admin.tplУправление страницами{PHP|cot_tpl_url('page.admin', 'module', true)}
forums.admin.tplУправление форумом{PHP|cot_tpl_url('forums.admin', 'module', true)}
polls.admin.tplУправление опросами{PHP|cot_tpl_url('polls.admin', 'module', true)}
pfs.admin.tplУправление файловым менеджером{PHP|cot_tpl_url('pfs.admin', 'module', true)}
Админ-шаблоны плагиновrecentitems.admin.tplНастройка Recent Items{PHP|cot_tpl_url('recentitems.admin', 'plug', true)}
comments.admin.tplМодерация комментариев{PHP|cot_tpl_url('comments.admin', 'plug', true)}
tags.tools.tplУправление тегами{PHP|cot_tpl_url('tags.tools', 'plug', true)}

Примечания

  1. Если тип не указан, подразумевается 'module'.
  2. Для плагинов всегда указывайте 'plug'.
  3. Для админ-шаблонов добавляйте третий параметр true.
  4. Третий параметр функции cot_tpl_url($base, $type, $admin) — это $admin.

    • true — искать в админ-теме (папка themes/admin/... или указанная в $cfg['admintheme']).
    • false или null (по умолчанию) — поиск в обычной теме пользователя, а если имя содержит admin, Cotonti может автоматически выбрать админ-тему.

    Пример: {PHP|cot_tpl_url('page.admin', 'module', true)} — найди шаблон page.admin.tpl в админской части темы. Без true Cotonti может искать его в обычной теме, что может дать неверный путь.

  5. В функцию cot_tpl_url() нельзя передавать массив – она принимает только строки. Однако в обычные шаблонные переменные ($t->assign()) массивы передавать можно, и обращаться к их элементам через точечную нотацию (например, {user.profile.name}). Для перебора массивов используйте конструкцию <!-- FOR ... IN ... -->.
  6. Если имя шаблона формируется динамически, передавайте его в шаблон через $t->assign() из PHP-кода:

    $tpl_url = cot_tpl_url($dynamic_name, 'module');
    $t->assign('DYNAMIC_TPL_URL', $tpl_url);

    В шаблоне: {DYNAMIC_TPL_URL}

  7. Работа с массивами в шаблонах. Если вы присвоили переменной массив:

    $t->assign('user', ['name' => 'Иван', 'age' => 30]);

    то в шаблоне можно вывести {user.name} и {user.age}. Также можно использовать массивы в циклах:

    <!-- FOR {item} IN {items} -->
      {item.title}
    <!-- ENDFOR -->

    Это стандартная возможность CoTemplate, и она не запрещена.

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


Заключение

Данный справочник охватывает основные имена шаблонов Cotonti, сгруппированные по категориям. Используйте его для:

  • Быстрого поиска нужного шаблона при редактировании внешнего вида сайта;
  • Правильного вызова функции cot_tpl_url() в коде;
  • Понимания структуры шаблонов системы и их назначения.

Сводная таблица в конце статьи поможет быстро найти шаблон по категории и получить готовый пример вызова. Если вы не нашли нужный шаблон в списке, обратитесь к документации соответствующего модуля или плагина.

Помните, что имена шаблонов могут отличаться в зависимости от версии Cotonti и используемой темы оформления. В случае сомнений проверяйте фактические имена файлов в папке /themes/ваша_тема/.

Дополнение

 

Полная инструкция по cot_tpl_url() – каждый случай с примерами


1. Что возвращает cot_tpl_url()

Возвращает абсолютный URL к файлу шаблона (например, https://site.com/themes/default/modules/page/page.list.tpl).
Это НЕ ссылка на страницу сайта – это путь к файлу для отладки, кэширования или проверки.


2. Где можно вызывать

МестоСинтаксис
В PHP-коде (контроллер, хук, плагин)cot_tpl_url($base, $type, $admin)
В TPL-шаблоне (через {PHP|...}){PHP|cot_tpl_url('...', '...', ...)}

3. Что можно передавать в первый параметр ($base)

Место вызоваМожно строкуМожно массив
PHP✅ да✅ да
TPL ({PHP|...})✅ да❌ НЕТ (только строки)

4. Примеры для каждого случая

Случай 1: Вызов в PHP со строкой

Когда: имя шаблона известно и не меняется, вы уже в PHP.

// Пример 1.1 – получить URL шаблона page.list.tpl
$url = cot_tpl_url('page.list', 'module');
// Результат: https://site.com/themes/default/modules/page/page.list.tpl

// Пример 1.2 – с явным указанием типа 'core'
$header_url = cot_tpl_url('header', 'core');
// Результат: https://site.com/themes/default/core/header.tpl

// Пример 1.3 – админ-шаблон (третий параметр true)
$admin_url = cot_tpl_url('admin.config', 'core', true);
// Результат: https://site.com/themes/admin/core/admin.config.tpl

Пояснение: первый аргумент – строка с именем файла без расширения .tpl; второй – тип ('module', 'plug' или 'core'); третий – true для админ-темы.

Случай 2: Вызов в PHP с массивом

Когда: имя шаблона собирается из нескольких частей динамически.

// Пример 2.1 – массив из двух частей
$parts = ['page', 'list'];
$url = cot_tpl_url($parts, 'module');
// Эквивалентно cot_tpl_url('page.list', 'module')

// Пример 2.2 – динамическое имя из переменных
$module = 'forums';
$action = 'topics';
$url = cot_tpl_url([$module, $action], 'module');
// Результат: URL к forums.topics.tpl

// Пример 2.3 – массив для плагина
$plugin_parts = ['comments', 'edit'];
$url = cot_tpl_url($plugin_parts, 'plug');
// Результат: URL к comments.edit.tpl в папке плагинов

Пояснение: массив преобразуется в строку через соединение элементов точкой. Работает только в PHP, не в TPL.

Случай 3: Вызов в TPL со строкой (прямой вызов)

Когда: имя шаблона известно и вы хотите получить URL прямо в шаблоне.

<!-- Пример 3.1 – простой вызов -->
{PHP|cot_tpl_url('page.list', 'module')}

<!-- Пример 3.2 – админ-шаблон -->
{PHP|cot_tpl_url('admin.home', 'core', true)}

<!-- Пример 3.3 – плагин -->
{PHP|cot_tpl_url('recentitems', 'plug')}

Пояснение: внутри {PHP|...} все аргументы обязаны быть строками. Массивы запрещены.

Случай 4: Передача результата из PHP в TPL (рекомендуемый способ)

Когда: имя динамическое или нужно использовать массив.

Шаг 1 – в PHP:

$dynamic_name = ['page', 'list'];
$tpl_url = cot_tpl_url($dynamic_name, 'module');
$t->assign('TPL_DEBUG_URL', $tpl_url);

Шаг 2 – в TPL:

<p>Используемый шаблон: <code>{TPL_DEBUG_URL}</code></p>

Пояснение: вычисляете URL в PHP (можно с массивом), передаёте в TPL через $t->assign() – это единственный способ использовать массив.

Случай 5: Что нельзя делать (ошибки)

ДействиеРезультат
{PHP|cot_tpl_url(['page','list'])}СИНТАКСИЧЕСКАЯ ОШИБКА – TPL-парсер не понимает квадратные скобки.
{PHP|cot_tpl_url($my_array)}НЕ СРАБОТАЕТ – в TPL нет переменных-массивов.
Передать массив в cot_tpl_url() внутри {PHP|...}ОШИБКА – недопустимо.
Использовать cot_tpl_url() для ссылок на страницы сайтаНЕПРАВИЛЬНО – это URL к файлу шаблона, а не к странице. Для ссылок используйте cot_url().

6. Сводная таблица всех вариантов

КонтекстТип первого аргументаСинтаксисПример
PHPстрокаcot_tpl_url('page.list', 'module')$url = cot_tpl_url('page.list');
PHPмассивcot_tpl_url(['page','list'], 'module')$url = cot_tpl_url(['page','list']);
TPL (прямой вызов)строка{PHP|cot_tpl_url('page.list', 'module')}{PHP|cot_tpl_url('page.list')}
TPL (через переменную)не важно (уже строка){MY_URL}{TPL_DEBUG_URL}

7. Когда что выбирать – рекомендации

  • Всегда, когда имя динамическое – вычисляйте URL в PHP (можно с массивом) и передавайте в шаблон через $t->assign().
  • Если имя статическое и нужно быстро вывести – можно использовать прямой вызов в TPL со строкой.
  • Никогда не пытайтесь передать массив в TPL – это не работает.
  • Для ссылок на страницы сайта – используйте cot_url(), а не cot_tpl_url().

8. Полный пример реального использования

Задача: вывести на странице отладочную информацию о том, какой шаблон используется для списка страниц.

PHP (контроллер):

$debug_tpl = cot_tpl_url(['page', 'list'], 'module');
$t->assign('DEBUG_TPL', $debug_tpl);

TPL (шаблон):

<div style="background:#f0f0f0; padding:5px; font-size:12px;">
    Используемый шаблон: <code>{DEBUG_TPL}</code>
</div>

9. Важные итоги (запомните раз и навсегда)

  1. cot_tpl_url() – это URL к файлу шаблона, а не к странице.
  2. В TPL ({PHP|...}) – только строки, массивы запрещены.
  3. В PHP – можно и строку, и массив.
  4. Массив – это просто удобная запись для динамических имён, он преобразуется в строку с точками.
  5. Всегда передавайте результат из PHP в шаблон через $t->assign(), если имя динамическое.
  6. Для ссылок на страницы используйте cot_url().

 

{PHP|...} – универсальный механизм для вызова любых функций (стандартных PHP, пользовательских, из ядра Cotonti, из плагинов).

В коде нет никакого жёсткого списка разрешённых функций – вызывается всё, что существует.

Массивы в аргументах внутри {PHP|...} не работают – потому что cotpl_parseArgument() обрабатывает только скаляры, и внутри TPL-тега все аргументы передаются как строки.

Всё это реализовано в классах Cotpl_var и Cotpl_data ШАБЛОНИЗАТОРА.

 

<!-- Простой вызов -->
{PHP|my_function('param1', 'param2')}

<!-- С тегами и переменными -->
{MYTAG|my_function()}
{PHP.somevariable|my_function()}

<!-- С несколькими аргументами -->
{MY_TAG|substr($this, 3, 'foo')}

сама в шоке



Опубликовано в: Блог пользователей
Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям
webitproff
webitproff
Carbonate Sodium

webitproff

Professional product designer and amateur cyclist living in New York City, USA.