PM

Описание

Класс PM - плагин-менеджер, управляет плагинам и регистрирует их. Устанавливает взаимодействие пользовательских функций с системой.

Методы класса

array plugLocales() Добавляет локаль плагина, если она есть в папке /locales текущего плагина $pluginName.
object getInstance() Возвращает единственный экземпляр данного класса.
array getListShortCode() Возвращает массив названий шорткодов.
Все хуки для шорткодов начинаются с префикса "shortcode_".
array getListNameHooks() Возвращает массив названий зарегистрированных хуков.
bool. isHookInReg() Проверяет зарегистрирован ли хук.
void init() Инициализирует объект данного класса.
void registration() Регистрирует обработчик для действия, занося его в реестр обработчиков.
void delete() Удаляет из реестра данные об обработчике.
int prioritet() Вычисляет приоритетность пользовательских функций, назначенных на обработку одного и того же события.
Используется для сравнения приоритетов в функции.
void includePlugins() Подключает все плагины соответствующие требованиям.
- Все плагины должны содержаться в каталоге mg-plugins/;
- Название папки содержащей плагин, может быть любым;
- Если в папке плагина есть файл index.php и в первом блоковом комментарии
он содержит хотябы один из доступных параметров PluginName ,
то плагин будет подключен.
Пример мета информации в index.php
Plugin NameHello World
Plugin URI
https://moguta.ru/plugins/HelloWorld/
DescriptionПлагин для демонстрации функционала
Author
mogutaTeam
Version
1.0
string includePluginInFolder() Подключает один конкретный плагин хранящийся в выбранной директории.
array getPluginsInfo() Считывает информацию обо всех плагинах в директории PLUGIN_DIR.
int sortByActivity() Функция для сортировки плагинов по активности.
int sortByPluginName() Функция для сортировки плагинов по алфавиту.
array|null readInfo() Считывает информацию о конкретном плагине.
string getFolderPlugin() Получает название папки в которой хранится плагин.
string doShortcode() Ищет в контексте шорткоды и запускает их обработчики.
Если шотркод не определен или его плагин отключен, он будет возвращен без обработки.
string getShortcodeRegex() Возвращает шаблон для поиска по регулярному выражению.
Регулярное выражение содержит 6 различных частей,
для обеспечения разбора контента, которые ищут:
1 - Открывающую скобку [ исключая вложения их друг в друга [[]];
2 - Название шорткода;
3 - Список аргументов;
4 - Закрывающий слеш /;
5 - Содержимое шорткода, между тегами;
6 - Закрывающую скобку [ исключая вложения их друг в друга [[]];
array doShortcodeTag() Проверка разобранных частей для передачи в обработчик хука.
array createHook() Инициализирует то или иное событие в коде программы,
сообщая об этом всем зарегистрированных обработчикам.
Если существуют обработчики назначенные на данное событие,
то запускает их пользовательские функции, в порядке очереди
определенной приоритетами.
array shortcodeParseAttrs() Возвращает список атрибутов внутри шорткода.
в виде массива пар - {ключ:значение}
string stripShortcodes() Очищает контент от всех шорткодов.
string stripShortcodeTag() Вырезает все указанные шорткоды.
'msg' downloadPlugin() Метод валидации загружаемого плагина.
bool extractPluginZip() Распаковка плагина при установке через панель администрирования.
array getPluginDir() Получает актуальный путь для обновления плагина.
void failtureUpdate() Обновляет информацию о плагине, в случае неуспешного обновления файлов.
Возвращает информацию о версиях плагинов в состояние, которое было до попытки обновления.
bool checkPluginsUpdate() Проверяет наличие обновлений для плагинов и записывает результат в базу данных.
bool deletePlagin() Удаление информации о плагине из БД и удаление папки.
bool updatePlugin() Обновление плагина.
bool hookExists() Проверка добавлен ли обработчик хука.
Описание методов и примеры их использования

Метод

array plugLocales ($pluginName)

Параметры

  • $pluginName: название плагина.

Описание

Добавляет локаль плагина, если она есть в папке /locales текущего плагина $pluginName.

Метод

object getInstance ()

Описание

Возвращает единственный экземпляр данного класса.

Метод

array getListShortCode ()

Описание

Возвращает массив названий шорткодов.
Все хуки для шорткодов начинаются с префикса "shortcode_".

Метод

array getListNameHooks ()

Описание

Возвращает массив названий зарегистрированных хуков.

Метод

boolisHookInReg (string $hookname)

Параметры

  • $hookname: имя хука, который надо проверить на регистрацию.

Описание

Проверяет зарегистрирован ли хук.

Метод

init ()

Описание

Инициализирует объект данного класса.

Метод

registration (Hook $eventHook)

Параметры

  • $eventHook: объект содержащий информацию об обработчике и событии.

Описание

Регистрирует обработчик для действия, занося его в реестр обработчиков.

Метод

delete (Hook $eventHook)

Параметры

  • $eventHook: объект содержащий информацию об обработчике и событии.

Описание

Удаляет из реестра данные об обработчике.

Метод

int prioritet ($a$b)

Параметры

  • $a: - приоритет текущей функции.
  • $b: - приоритет предыдущей функции usort в методе 'PM::createHook'.

Описание

Вычисляет приоритетность пользовательских функций, назначенных на обработку одного и того же события.
Используется для сравнения приоритетов в функции.

Метод

void includePlugins ()

Описание

Подключает все плагины соответствующие требованиям.
- Все плагины должны содержаться в каталоге mg-plugins/;
- Название папки содержащей плагин, может быть любым;
- Если в папке плагина есть файл index.php и в первом блоковом комментарии
он содержит хотябы один из доступных параметров PluginName ,
то плагин будет подключен.
Пример мета информации в index.php

Plugin NameHello World
Plugin URI
https://moguta.ru/plugins/HelloWorld/
DescriptionПлагин для демонстрации функционала
Author
mogutaTeam
Version
1.0

Метод

string includePluginInFolder (string $folderName)

Параметры

  • $folderName: - наименование папки плагина.

Описание

Подключает один конкретный плагин хранящийся в выбранной директории.

Метод

array getPluginsInfo ()

Описание

Считывает информацию обо всех плагинах в директории PLUGIN_DIR.

Метод

int sortByActivity ($a$b)

Параметры

  • $a: - активность текущего плагина.
  • $b: - активность предыдущего плагина (usort в методе 'PM::getPluginsInfo').

Описание

Функция для сортировки плагинов по активности.

Метод

int sortByPluginName ($a$b)

Параметры

  • $a: название первого плагина.
  • $b: название второго плагина.

Описание

Функция для сортировки плагинов по алфавиту.

Метод

array|null readInfo (string $folderNamebool $fromTemplate)

Параметры

  • $folderName: название папки с файлом index.php плагина
  • $fromTemplate: подключается ли плагин из шаблона

Описание

Считывает информацию о конкретном плагине.

Метод

string getFolderPlugin (string $dir)

Параметры

  • $dir: - директория в которой хранится плагин.

Описание

Получает название папки в которой хранится плагин.

Метод

string doShortcode (string $content)

Параметры

  • $content: - строка для поиска в ней шорткодов.

Описание

Ищет в контексте шорткоды и запускает их обработчики.
Если шотркод не определен или его плагин отключен, он будет возвращен без обработки.

Метод

string getShortcodeRegex ()

Описание

Возвращает шаблон для поиска по регулярному выражению.
Регулярное выражение содержит 6 различных частей,
для обеспечения разбора контента, которые ищут:
1 - Открывающую скобку [ исключая вложения их друг в друга [[]];
2 - Название шорткода;
3 - Список аргументов;
4 - Закрывающий слеш /;
5 - Содержимое шорткода, между тегами;
6 - Закрывающую скобку [ исключая вложения их друг в друга [[]];

Метод

array doShortcodeTag (array $m$first false$recursionStart false)

Параметры

  • $m: массив полученный регулярным выражением

Описание

Проверка разобранных частей для передачи в обработчик хука.

Метод

array createHook (string $hookName, array $argbool $result false$first false$recursionStart false)

Параметры

  • $hookName: название события.
  • $arg: массив аргументов.
  • $result: флаг, определяющий, должна ли пользовательская
  • функция вернуть результат для дальнейшей работы в месте инициализации события.

Описание

Инициализирует то или иное событие в коде программы,
сообщая об этом всем зарегистрированных обработчикам.
Если существуют обработчики назначенные на данное событие,
то запускает их пользовательские функции, в порядке очереди
определенной приоритетами.

Метод

array shortcodeParseAttrs ()

Параметры

  • string строка шорткода с параметрами

Описание

Возвращает список атрибутов внутри шорткода.
в виде массива пар - {ключ:значение}

Метод

string stripShortcodes (string $content)

Параметры

  • $content: строка с шорткодами.

Описание

Очищает контент от всех шорткодов.

Метод

string stripShortcodeTag (array $m)

Параметры

  • $m: массив с шорткодами.

Описание

Вырезает все указанные шорткоды.

Метод

'msg' downloadPlugin (array $file_array)

Параметры

  • $file_array: - массив данных загружаемого плагина

Описание

Метод валидации загружаемого плагина.

Метод

bool extractPluginZip (string $archiveFilestring $pluginName)

Параметры

  • $archiveFile: - путь до файла с плагином
  • $pluginName: - название папки плагина

Описание

Распаковка плагина при установке через панель администрирования.

Метод

array getPluginDir (array $pluginName)

Параметры

  • $pluginName: название плагина

Описание

Получает актуальный путь для обновления плагина.

Метод

void failtureUpdate (array $plugin, array $version)

Параметры

  • $plugin: название плагина.
  • $version: версия плагина.

Описание

Обновляет информацию о плагине, в случае неуспешного обновления файлов.
Возвращает информацию о версиях плагинов в состояние, которое было до попытки обновления.

Метод

bool checkPluginsUpdate (array $plugins)

Параметры

  • $plugins: массив вида: плагин=>версия

Описание

Проверяет наличие обновлений для плагинов и записывает результат в базу данных.

Метод

bool deletePlagin (string $pluginFolder)

Параметры

  • $pluginFolder: имя плагина

Описание

Удаление информации о плагине из БД и удаление папки.

Метод

bool updatePlugin (string $pluginFolderstring $folderstring $version)

Параметры

  • $pluginFolder: имя плагина
  • $folder: папка плагина
  • $version: версия

Описание

Обновление плагина.

Метод

bool hookExists (string $hookNamestring $functionstring $class)

Параметры

  • $hookName: имя хука, на который вешается обработчик
  • $function: имя функции обработчика
  • $class: имя класса обработчика

Описание

Проверка добавлен ли обработчик хука.