В Cotonti Siena (версия 0.9.26 и близкие релизы) термины тема и шаблон имеют чёткое, но не всегда интуитивно очевидное для новичков разграничение. Это фактическое руководство на основе структуры и терминологии системы (документация cotonti.com, исходный код, стандартные дистрибутивы).
1. Основные понятия и правильная терминология
Тема (theme) Полный комплект оформления сайта. Физически — это папка внутри директории /themes/. Примеры стандартных тем в дистрибутиве: nemesis, paradise, havens и др. Тема включает:
- все .tpl файлы (шаблоны),
- CSS-файлы,
- изображения,
- JavaScript,
- иногда языковые файлы и ресурсы для конкретного стиля.
Тема выбирается в админке: Configuration → Main → Themes → выпадающий список всех папок из /themes/.
Шаблон (template) Конкретный файл с расширением .tpl, написанный на языке CoTemplate (собственный движок Cotonti, основанный на идеях XTemplate). Шаблоны лежат внутри папки темы, обычно в подкаталогах или прямо в корне темы. Примеры файлов-шаблонов:
- index.tpl — главная страница
- page.tpl — обычная страница
- users.profile.tpl — профиль пользователя
- forums.posts.tpl — сообщения форума
- admin/admin.tpl — основной шаблон админки
Один шаблон отвечает за одну конкретную страницу или блок вывода.
Правильное употребление в профессиональной среде Cotonti:
- «Установи тему Nemesis»
- «Отредактируй шаблон page.tpl в теме paradise»
- «Создай свою тему на основе стандартной»
- «В шаблоне header.tpl добавь тег {HEADER_META}»
Неправильно / вводит в заблуждение:
- «Установи шаблон Nemesis» → неверно, Nemesis — это тема
- «Тема page.tpl» → неверно, page.tpl — это шаблон внутри темы
2. Аналогии для ясного понимания
| Аналогия | Тема (theme) | Шаблон (template / .tpl) |
| Одежда | Полный костюм (пиджак + брюки + рубашка + галстук) | Только пиджак |
| Автомобиль | Марка и модель (BMW X5 M Sport) | Конкретная деталь (передний бампер) |
| Кухня | Полный гарнитур + столешница + техника | Только фасад одной дверцы шкафа |
| Книга | Издание книги (оформление, шрифт, обложка) | Одна глава или страница |
| WordPress (для сравнения) | Theme (Twenty Twenty-Four) | Template file (single.php, page.php) |
В Cotonti тема ≈ WordPress theme, а шаблон ≈ template file внутри темы.
3. Структура директорий (фактическая, по дистрибутиву 0.9.x)
/themes/
├── nemesis/ ← это тема
│ ├── css/
│ │ └── style.css
│ ├── images/
│ ├── js/
│ ├── header.tpl ← шаблон
│ ├── footer.tpl ← шаблон
│ ├── index.tpl
│ ├── page.tpl
│ ├── users.profile.tpl
│ └── ...
├── paradise/
│ └── ... (аналогично)
└── your_custom_theme/ ← ваша новая тема — просто копируете и переименовываете папкуАдмин-панель имеет отдельные темы, обычно в /themes/admin/ или /themes/youradmin/.
4. Как Cotonti собирает страницу (процесс рендеринга)
- Система определяет текущую тему из конфига
$cfg['defaulttheme']или пользовательского выбора. - Определяет, какой шаблон нужен для текущего действия (например, page → page.tpl, users → users.details.tpl).
- Загружает .tpl файл из папки текущей темы.
- CoTemplate парсит файл:
- заменяет теги {PAGE_TITLE} → реальное значение
- обрабатывает блоки <!-- BEGIN: MAIN --> тело шаблона <!-- END: MAIN -->
в нем может быть
<!-- IF {INDEX_NEWS} -->
{INDEX_NEWS}
<!-- ENDIF -->
а внутри него может лежать
<!-- BEGIN: SOME_BLOCK --> блок списка новостей <!-- END: SOME_BLOCK --> - выполняет условия <!-- IF {SOME_TAG} -->
- вызывает функции {PHP|cot_plugin_active('recentitems')}
- Вставляет результат в основной layout ( в header.tpl / index.tpl / footer.tpl).
5. Почему важно различать термины при разработке и поддержке
- При общении в сообществе / на форуме cotonti.com: «Сломался вывод в шаблоне forums.tpl темы havens» — все сразу понимают проблему.
- При создании плагинов / модулей: Расширение должно поддерживать тему, а не конкретный шаблон. Правильно: «Плагин добавляет теги в шаблоны темы». Неправильно: «Плагин добавляет теги в тему».
- При продаже/распространении оформления: Продаётся тема (папка целиком). Никогда не пишут «продаю шаблон Nemesis» — это вводит в заблуждение.
6. Рекомендации по созданию собственной темы (чек-лист)
- Скопируйте самую простую стандартную тему (чаще всего nemesis).
- Переименуйте папку → mycompany2026.
- Отредактируйте файлы .tpl → меняйте структуру, добавляйте свои классы.
- Положите свои стили в css/style.css (или отдельные файлы).
- В админке выберите новую тему → Configuration → Main → Themes.
- Проверьте все основные страницы: index, page, list, users, forums, pfs, admin.
- Используйте debug-режим CoTemplate ($cfg['debugmode'] = true) для просмотра доступных тегов и блоков прямо на странице.
Итоговая таблица правильной терминологии Cotonti Siena
| Что вы имеете в виду | Как правильно говорить | Пример фразы |
| Папка с оформлением | Тема | Активировал тему paradise |
| Конкретный .tpl файл | Шаблон | Исправил ошибку в шаблоне users.profile.tpl |
| Всё оформление целиком | Тема | Разработал новую тему под корпоративный стиль |
| Один .tpl файл | Шаблон | Добавил блок в шаблон header.tpl |
| Движок обработки .tpl | CoTemplate | CoTemplate поддерживает вложенные функции |
Соблюдая эту терминологию, вы избегаете 90% недопонимания при работе с разработчиками, темоделами и в сообществе Cotonti.