Кейс: Как создать профессиональную документацию на Cotonti Siena без правки ядра и дублирования шаблонов
Исходные данные проекта
- CMF: Cotonti Siena 0.9.26 (последняя стабильная сборка на момент написания)
- PHP: 8.4
- База: MySQL 8.0
- Тема сайта: собственная разработка на Bootstrap 5
- Тип проекта: сложный маркетплейс услуг + закрытая часть для клиентов
- Задача заказчика (дословно): «Нужно нормальное руководство пользователя, как у серьёзных SaaS-продуктов. Чтобы было своё меню в сайдбаре, своя шапка сайта только в этом разделе, порядок пунктов я сам контролирую, черновики не светятся, названия в меню короткие, всё красиво подсвечивается. И чтобы без костылей и правки ядра — я потом обновляться буду».
Решение, которое было применено
Для выполнения всех требований одновременно были использованы два открытых плагина:
- pagemycatheader 2.3.0 — гибкая подмена шапки сайта по родительской категории GitHub: https://github.com/webitproff/cotonti-pagemycatheader
- cot-menubyparentcat 2.2.8 — ручное меню по родительской категории с полным контролем структуры GitHub: https://github.com/webitproff/cot-menubyparentcat
Оба плагина распространяются бесплатно под лицензией BSD, не требуют правки ядра и полностью совместимы с Cotonti Siena 0.9.26+.
Этап 1. Подмена шапки сайта только в разделе документации
Что требовалось
Шапка сайта в разделе «Руководство пользователя» должна отличаться от остальных страниц: другой логотип, другая цветовая схема, другие пункты верхнего меню.
Как решено с помощью pagemycatheader
- В структуре страниц создана родительская категория с кодом user-guide
- Установлен и активирован плагин pagemycatheader
- В настройках плагина в поле «parentcat» указан код user-guide
- В папке текущей темы создан единственный файл: themes/название_темы/header.page.user-guide.tpl
Результат
На всех страницах, принадлежащих категории user-guide и любой её дочерней категории (любой уровень вложенности), автоматически подгружается именно этот файл вместо стандартного header.tpl. Никаких дополнительных условий, хуков или правок в ядре — всё работает «из коробки».
Этап 2. Создание профессионального меню документации
Что требовалось
- Полный ручной контроль порядка пунктов
- Возможность ставить важные страницы («Введение», «Быстрый старт», «FAQ») строго сверху
- Категории как красивые разделители-группы
- Автоматическое подтягивание всех опубликованных статей внутри подкатегорий
- Скрытие черновиков и технических страниц
- Переопределение длинных заголовков статей на короткие названия в меню
- Подсветка текущего пункта + счётчик статей в каждой категории
- Аккордеон на Bootstrap 5
Как решено с помощью cot-menubyparentcat
- Установлен и активирован плагин
- В настройках плагина указана родительская категория user-guide
- Перешёл в админку → Прочее → Menu by Parent Category
- Вручную добавил нужные пункты в требуемом порядке:
Порядок | Тип | Код/ID | Название в меню (Title override) | Примечание |
|---|---|---|---|---|
10 | Page | 1011 | Введение | лежит прямо в user-guide |
20 | Page | 1012 | Быстрый старт | лежит прямо в user-guide |
30 | Category | registration | Регистрация и профиль | все статьи внутри подтягиваются автоматически |
40 | Category | tasks | Задачи и проекты | — |
50 | Category | services | Услуги | — |
60 | Category | payments | Платежи и кошелёк | — |
70 | Category | security | Безопасность | — |
80 | Page | 1099 | Часто задаваемые вопросы | лежит прямо в user-guide |
Черновики и технические страницы просто не добавлялись в этот список — они полностью скрыты от пользователей.
- В шаблон сайдбара (sidebar.tpl или любой другой) добавлена одна строка:
<div class="docs-sidebar sticky-top">
<h5 class="mb-4">Руководство пользователя</h5>
{PHP|cot_menubyparentcat_build_tree()}
</div>Итоговый внешний вид меню (точно как в проекте)
Руководство пользователя
├── Введение
├── Быстрый старт
├── Регистрация и профиль
├── Задачи и проекты (12)
│ ├── Создание задачи
│ ├── Выбор исполнителя
│ └── …
├── Услуги (8)
├── Платежи и кошелёк (10)
├── Безопасность
└── Часто задаваемые вопросы- Подсветка текущей страницы — автоматическая
- Аккордеон с плавным открытием/закрытием
- Счётчик статей в скобках (как в официальных документациях)
- Всё работает и с ЧПУ-ссылками, и параметрами ?c= и ?id=
Затраченное время (реальное)
- Установка и активация двух плагинов — 4 минуты
- Настройка pagemycatheader + создание кастомного header.page.user-guide.tpl — 7 минут
- Создание структуры категорий в Pages — 5 минут
- Заполнение пунктов меню в cot-menubyparentcat — 12 минут
- Вставка одной строки в сайдбар + очистка кэша — 2 минуты
Итого: 30 минут от начала до полностью рабочего результата.
Выводы
С помощью двух небольших, но крайне точечных плагинов pagemycatheader и cot-menubyparentcat на абсолютно чистом Cotonti Siena 0.9.26+ удалось получить:
- полностью кастомную шапку сайта только для одного раздела и всех его подразделов
- профессиональное меню документации уровня GitHub Docs / Bootstrap / AdminLTE
- 100 % контроль структуры, порядка, видимости и названий пунктов
- отсутствие любых правок ядра и дублирования шаблонов
- полную совместимость с будущими обновлениями Cotonti
Если вы разрабатываете или поддерживаете любой коммерческий или открытый продукт на Cotonti (темы, плагины, модули, сайты), наличие качественной документации с удобным меню и оформлением — это уже не «приятный бонус», а обязательный стандарт 2025 года.
Эти два плагина позволяют выполнить его буквально за полчаса.
Ссылки на плагины
- https://github.com/webitproff/cotonti-pagemycatheader (v2.3.0)
- https://github.com/webitproff/cot-menubyparentcat (v2.2.8)
Оба бесплатны, с открытым исходным кодом и лицензией BSD. Звёздочки на GitHub приветствуются — это лучшая благодарность автору.
© webitproff, 27 Nov 2025, License BSD.
Вы можете нанять меня или предложить задание
напишите в личные сообщения на этой странице