Модульная система
Расширение может быть только административным или составным пакетом с публичной и административной частями. Оно декларативно описывает права, маршруты, миграции, настройки, хуки, типы полей и вклады в интерфейс. Управляемый модуль можно установить, обновить, выключить, переустановить и удалить через панель управления AVE.cms.
В этом разделе AVE.cms означает сам движок, а «панель управления» — его
административный интерфейс. Имя adminx используется как имя каталога по
умолчанию, а также в namespace и технических API панели. Физический каталог
можно переименовать.
Только административный модуль:
<admin-directory>/modules/Notes/
├── module.php
├── Controller.php
├── Model.php
├── migrations/
├── view/
└── assets/
Составной пакет, который меняет и публичный сайт:
modules/reviews/
├── app/
│ ├── module.php
│ ├── services.php
│ └── Fields/
└── admin/
├── module.php
├── Controller.php
├── view/
└── assets/
Как система находит модули
ModuleManager загружает встроенные модули панели из каталога
<admin-directory>/modules, а
PackageModuleRuntime обнаруживает составные пакеты в modules. Классы
подключает штатный namespace-loader, затем descriptor регистрирует доступные
контракты в общих реестрах.
После первого обнаружения сериализуемые descriptors сохраняются в защищённом
storage/runtime/module-registry.json. Реестр проверяет корневой каталог и
автоматически пересобирает административную секцию после переименования панели.
Manifest с вычисляемым runtime-содержимым объявляет
'registry' => array('dynamic' => true) и загружается напрямую.
Управляемый модуль без записи жизненного цикла только обнаруживается. До явной установки его миграции, маршруты и интерфейс не активны.
В разделе Модули → Управление область каждого расширения отмечена цветом:
Админка- код находится только в каталоге панели и не подключается в паблике;Публичный- пакет предоставляет только runtime публичного сайта;Паблик + админка- единый пакет содержитapp/иadmin/.
Поэтому небольшое число папок в корневом modules/ нормально: чисто
административные расширения физически находятся в
<admin-directory>/modules/, а составные пакеты - в корневом modules/.
Карта раздела
| Страница | О чём |
|---|---|
| module.php — descriptor | Все основные ключи manifest с примерами. |
| Файлы модуля | Menu, Permissions, контроллеры, модели, маршруты, Twig и assets. |
| Операции и состояния | Установка, обновление, включение, переустановка, деинсталляция и удаление файлов. |
| ZIP-пакеты | Структура архива, ограничения и безопасная установка через панель управления. |
| Удалённый каталог | Подключение подписанного источника, публикация и установка модулей по HTTPS. |
| Миграции | Плейсхолдеры таблиц, ledger, идемпотентность и удаление схемы. |
| Вклады в UI | Обзор меню, действий шапки, виджетов дашборда и уведомлений. |
| Локализация | XML-словари модуля, Twig, JavaScript и перевод пунктов меню. |
| Виджеты дашборда | Descriptor, provider, Twig, сетка, порядок и видимость. |
| Действия в шапке | Кнопка, dropdown, модальное окно, права и Ajax. |
| Уведомления | Элементы общего колокольчика, счётчики и производительность provider. |
| Встроенная справка | Как модуль читает каталог help/, строит навигацию и полнотекстовый поиск. |
| Готовность сайта | Профили запуска, отчёты, ручной чек-лист и расширение проверок модулем. |
| Взаимодействия | Общий runtime оценок, реакций и голосов, каналы, API и hooks. |
| Антиспам | Профили защиты форм, challenge, CAPTCHA и подключение своих проверок. |
| Рейтинги | Виджет оценки объектов, шаблонные теги и API голосов. |
| Комментарии | Обсуждения, премодерация, три шаблона, API и антиспам. |
| Опросы | Одиночные и множественные голосования, архив, теги и API. |
| Галереи | Медиаколлекции, сетка, слайдер, миниатюры и шаблонные теги. |
| Поиск по сайту | Индекс, области, вывод через запросы, JSON/HTML API, живой поиск и хуки. |
| Баннеры | Рекламные места, стратегии ротации, расписание, шаблоны и статистика. |
| Вопросы и ответы | Коллекции FAQ, rich-text ответы, шаблоны, JSON API и Schema.org. |
| Похожие материалы | Релевантность, кольцевой вывод, ручные связи, шаблоны, запросы и API. |
| Контактные формы | Формы, поля, публичная вставка, история обращений и ответы. |
| Корзина, доставка и оплата | Публичные страницы корзины, Twig-шаблоны, сервисы доставки и платёжные шлюзы. |
| RSS-каналы | Публичные адреса каналов, рубрики, поля и ограничения выдачи. |
| Вход через VK ID и Яндекс | Callback URL, секреты, регистрация и привязка аккаунтов. |
| Вход по SMS через SMSC | API-ключ, одноразовые коды, ограничения и телефонные аккаунты. |
| Личные инструменты | Todo, канбан, заметки и напоминания. |
| Ошибки 404 | Журнал несуществующих URL и создание редиректов. |
| SEO-аудит | Правила проверки документов и безопасное заполнение метаданных. |
| Производительность | Синтетическая проверка БД, файловой системы и CPU. |
| Безопасность файлов | Эталон, профили проверки, карантин, права и уведомления. |
| Демо-сайт | Обратимое добавление темы и демонстрационного контента. |
| Импорт документов | Профили CSV, Excel и XML, сопоставление полей и повторное обновление документов. |
| Миграция из старой AVE.cms | Preflight, пакетный перенос с сохранением ID, сверка и импорт uploads. |
| Пакеты контента | JSON-перенос рубрик, полей, запросов, документов и блоков между сайтами. |
| Планировщик | Реестр фоновых задач, cron-расписание, HTTP-тик и журнал запусков. |
| Мониторинг здоровья | Диск, MySQL, фоновые задачи, внешние сервисы и история снимков. |
| Отзывы | Отзывы и рейтинг объектов, премодерация и ответ компании. |
| Всплывающие окна | Кампании, A/B-варианты, сценарии показа и лиды. |
| Обмен с 1С | Профили CommerceML, сопоставление полей и журнал импортов. |
| Источники трафика | UTM-кампании, внешние переходы, посадочные страницы и CSV. |
| Поисковые запросы | Спрос посетителей, нулевая выдача и рабочие заметки. |
| A/B-тесты | Варианты блоков и элементов, стабильное распределение и конверсии. |
| Надёжные исходящие события | Webhook-очередь, подписи, повторы и журнал доставок. |
| Автоматический прогрев кеша | Пакетный прогрев опубликованных страниц после сброса кеша. |
| Пошагово: свой модуль | Мини-модуль с нуля до рабочего экрана. |
Устанавливаемые модули AVE.cms
Таблица ниже покрывает штатные нетоварные модули. Товарные пакеты, импорт цен, виджеты и «Операции с документами» сознательно не входят в этот список.
| Код | Область | Основные права | Руководство |
|---|---|---|---|
benchmark |
Панель | view_benchmark, manage_benchmark |
Производительность |
interactions |
Паблик + панель | view_interactions, manage_interactions |
Взаимодействия |
reviews |
Паблик + панель | view_reviews, manage_reviews |
Отзывы |
antispam |
Паблик + панель | view_antispam, manage_antispam |
Антиспам |
banners |
Паблик + панель | view_banners, manage_banners |
Баннеры |
comments |
Паблик + панель | view_comments, manage_comments |
Комментарии |
contacts |
Паблик + панель | view_contacts, manage_contacts, reply_contacts |
Контактные формы |
commerce |
Паблик + панель | view_orders, manage_orders, refund_orders |
Корзина, доставка и оплата |
demo_site |
Паблик + панель | view_demo_site, manage_demo_site |
Демо-сайт |
document_import |
Панель | view_document_import, run_document_import, manage_document_import |
Импорт документов |
legacy_migration |
Панель | view_legacy_migration, run_legacy_migration, manage_legacy_migration |
Миграция AVE.cms |
content_packages |
Панель | view_content_packages, export_content_packages, import_content_packages |
Пакеты контента |
faq |
Паблик + панель | view_faq, manage_faq |
Вопросы и ответы |
galleries |
Паблик + панель | view_galleries, manage_galleries |
Галереи |
polls |
Паблик + панель | view_polls, manage_polls |
Опросы |
ratings |
Паблик + панель | view_ratings, manage_ratings |
Рейтинги |
related |
Паблик + панель | view_related, manage_related |
Похожие материалы |
file_security |
Паблик + панель | view_file_security, run_file_security, manage_file_security |
Безопасность файлов |
help |
Панель | view_help |
Встроенная справка |
kanban |
Панель | view_kanban, manage_kanban |
Личные инструменты |
notes |
Панель | view_notes, manage_notes |
Личные инструменты |
notfound |
Панель | view_notfound, manage_notfound |
Ошибки 404 |
reminders |
Панель | view_reminders, manage_reminders |
Личные инструменты |
rss |
Паблик + панель | view_rss, manage_rss |
RSS-каналы |
search |
Паблик + панель | view_search, manage_search |
Поиск по сайту |
seoaudit |
Панель | view_seoaudit, manage_seoaudit |
SEO-аудит |
site_readiness |
Панель | view_site_readiness, run_site_readiness, manage_site_readiness |
Готовность сайта |
scheduler |
Паблик + панель | view_scheduler, run_scheduler, manage_scheduler |
Планировщик |
system_health |
Панель | view_system_health, run_system_health, manage_system_health |
Мониторинг здоровья |
popups |
Паблик + панель | view_popups, manage_popups |
Всплывающие окна |
commerceml |
Паблик + панель | view_commerceml, manage_commerceml |
Обмен с 1С |
traffic_analytics |
Паблик + панель | view_traffic_analytics, manage_traffic_analytics |
Источники трафика |
search_analytics |
Паблик + панель | view_search_analytics, manage_search_analytics |
Поисковые запросы |
experiments |
Паблик + панель | view_experiments, manage_experiments |
A/B-тесты |
reliable_events |
Паблик + панель | view_reliable_events, manage_reliable_events |
Исходящие события |
cache_warmup |
Паблик + панель | view_cache_warmup, manage_cache_warmup |
Прогрев кеша |
todo |
Панель | view_todos, manage_todos |
Личные инструменты |
vk_oauth |
Паблик + панель | view_vk_oauth, manage_vk_oauth |
Вход через VK ID |
yandex_oauth |
Паблик + панель | view_yandex_oauth, manage_yandex_oauth |
Вход через Яндекс |
smsc_auth |
Паблик + панель | view_smsc_auth, manage_smsc_auth |
Вход по SMS через SMSC |
Ключевые принципы
- Только панель управления —
<admin-directory>/modules/<Name>, публичная часть и панель — один пакет вmodules/<code>. - Права, меню, маршруты, миграции, хуки и настройки объявляются декларативно.
- Managed-модуль требует явной установки; наличие папки не означает активацию.
- Отключение сохраняет данные и общие контракты, но убирает runtime-вклады.
- Twig-namespace административного модуля совпадает с его
code. - Модуль не должен требовать CLI для установки или повседневной production-работы.
- Браузерные подтверждения выполняются через технический API
Adminx.Confirm, ответы Ajax — через общий контракт панели управления.
Перед установкой стороннего пакета проверьте его исходный код и сделайте backup: ZIP-модуль является исполняемым PHP-кодом и может содержать миграции БД.