Разработка модуля: хуки и фильтры

Как разработать модуль для Kuznya CMS: структура, module.json, хуки, фильтры, точка подключения.

Что такое модуль

Модуль — папка в /modules/{slug}/ с файлом module.php. При активации движок подключает этот файл.

Структура модуля

/modules/my-module/
├── module.json         ← метаданные
├── module.php          ← логика
├── admin.php           ← (опционально) страница настроек
└── assets/             ← (опционально) css/js

Файл module.json

{
  "slug": "my-module",
  "name": "My Module",
  "version": "1.0.0",
  "author": "Ваше имя",
  "description": "Что делает модуль"
}

Хуки и фильтры

Хук — точка, куда модуль может вмешаться. В движке два типа:

add_action($hook, $callback)

Добавляет callback в точку. Ничего не возвращает — выполняет действие.

add_action('site.head', function() {
    echo '<meta name="x-module" content="loaded">';
});

add_filter($hook, $callback)

Модифицирует значение. Callback возвращает новое значение.

add_filter('page.title', function($title) {
    return $title . ' — My Module';
});

Доступные точки

  • site.head — внутри <head> публички
  • site.body.start — сразу после <body>
  • site.footer — перед </body>
  • admin.head — внутри <head> админки
  • admin.footer — перед </body> админки

Установка модуля

Загрузите ZIP через Система → Модули → Загрузить. Движок проверит безопасность и активирует.