Как сделать плагин для Moguta.CMS [быстрый старт]

1. Создаем папку с названием плагина pref-newplagin в директории сайта mg-plugins/ ;
2. В папке mg-plugins/pref-firstplugin/ создаем файл index.php в кодировке UTF-8 без BOM;
3. В файл папке mg-plugins/pref-firstplugin/index.php добавляем обязательный комментарий с описанием плагина:

<?php
/*
Plugin Name: Мой первый плагин
Description: Первый плагин для Moguta.CMS
Author: Не указан
Version: 1.0.1
*/

После вставки php комментария в начало файла index.php, в админке во вкладке "Плагины" появится новый, доступный для активации плагин "Мой первый плагин";

4. После комментария в index.php, для примера, добавим обработку хуков: mg_start, mg-end, mg_seometa, mg_gethtmlcontent.


function startEngine(){ 
  echo 'Произошло событие mg_start';
}

MG::addAction('mg_start', 'startEngine');

function endEngine($arg){ 
  echo 'Произошло событие mg_end';
}

MG::addAction('mg_end', 'endEngine', true);

function metaTitle($args) {
  $settings = MG::get('settings');
  MG::set('metaTitle', $args[0]['meta_title'].' >> '.$settings['sitename']);
}

MG::addAction('mg_seometa', 'metaTitle', true);

function h1AddToPage($args) {
  return  $args['result'] = "<h1>".MG::get('title')."</h1>".$args['result'];
}

MG::addAction('mg_gethtmlcontent', 'h1AddToPage', true);

По приведенному выше коду, после инициализцации событий будут произведены следующие действия:

  • mg_start — вывод текстового сообщения в начале страницы;
  • mg-end — вывод текстового сообщения в конце страницы;
  • mg_seometa — замена meta-title для страниц сайта;
  • mg_gethtmlcontent — автоматическая подстановка H1 заголовков страниц созданых в админке.

Первый плагин с примитивным функционалом готов, теперь можно наращивать функционал и создать страницу настроек плагина. Заготовка плагина со страницей настроек доступна тут