Кейс: Как создать профессиональную онлайн-документацию на Cotonti Siena

Дата: [29.11.2025 13:21]

Кейс: Как создать профессиональную документацию на Cotonti Siena без правки ядра и дублирования шаблонов

 

Исходные данные проекта

  • CMF: Cotonti Siena 0.9.26 (последняя стабильная сборка на момент написания)
  • PHP: 8.4
  • База: MySQL 8.0
  • Тема сайта: собственная разработка на Bootstrap 5
  • Тип проекта: сложный маркетплейс услуг + закрытая часть для клиентов
  • Задача заказчика (дословно): «Нужно нормальное руководство пользователя, как у серьёзных SaaS-продуктов. Чтобы было своё меню в сайдбаре, своя шапка сайта только в этом разделе, порядок пунктов я сам контролирую, черновики не светятся, названия в меню короткие, всё красиво подсвечивается. И чтобы без костылей и правки ядра — я потом обновляться буду».

 

Решение, которое было применено

Для выполнения всех требований одновременно были использованы два открытых плагина:

  1. pagemycatheader 2.3.0 — гибкая подмена шапки сайта по родительской категории GitHub: https://github.com/webitproff/cotonti-pagemycatheader
  2. cot-menubyparentcat 2.2.8 — ручное меню по родительской категории с полным контролем структуры GitHub: https://github.com/webitproff/cot-menubyparentcat

Оба плагина распространяются бесплатно под лицензией BSD, не требуют правки ядра и полностью совместимы с Cotonti Siena 0.9.26+.

 

Этап 1. Подмена шапки сайта только в разделе документации

 

Что требовалось

Шапка сайта в разделе «Руководство пользователя» должна отличаться от остальных страниц: другой логотип, другая цветовая схема, другие пункты верхнего меню.

 

Как решено с помощью pagemycatheader

  1. В структуре страниц создана родительская категория с кодом user-guide
  2. Установлен и активирован плагин pagemycatheader
  3. В настройках плагина в поле «parentcat» указан код user-guide
  4. В папке текущей темы создан единственный файл: themes/название_темы/header.page.user-guide.tpl

 

Результат

На всех страницах, принадлежащих категории user-guide и любой её дочерней категории (любой уровень вложенности), автоматически подгружается именно этот файл вместо стандартного header.tpl. Никаких дополнительных условий, хуков или правок в ядре — всё работает «из коробки».

 

Этап 2. Создание профессионального меню документации

 

Что требовалось

  • Полный ручной контроль порядка пунктов
  • Возможность ставить важные страницы («Введение», «Быстрый старт», «FAQ») строго сверху
  • Категории как красивые разделители-группы
  • Автоматическое подтягивание всех опубликованных статей внутри подкатегорий
  • Скрытие черновиков и технических страниц
  • Переопределение длинных заголовков статей на короткие названия в меню
  • Подсветка текущего пункта + счётчик статей в каждой категории
  • Аккордеон на Bootstrap 5

 

Как решено с помощью cot-menubyparentcat

  1. Установлен и активирован плагин
  2. В настройках плагина указана родительская категория user-guide
  3. Перешёл в админку → Прочее → Menu by Parent Category
  4. Вручную добавил нужные пункты в требуемом порядке:

 

Порядок

Тип

Код/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

 

Черновики и технические страницы просто не добавлялись в этот список — они полностью скрыты от пользователей.

  1. В шаблон сайдбара (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 года.

Эти два плагина позволяют выполнить его буквально за полчаса.

 

Ссылки на плагины

Оба бесплатны, с открытым исходным кодом и лицензией BSD. Звёздочки на GitHub приветствуются — это лучшая благодарность автору.

© webitproff, 27 Nov 2025, License BSD.


Вы можете нанять меня или предложить задание

напишите в личные сообщения на этой странице

Продавец

webitproff

Оффлайн

Carbonate Sodium

[webitproff]