PM

Описание

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

Методы класса
boolean checkPluginsUpdate() Проверяет наличие обновлений для плагинов и записывает результат в базу данных.
array createHook() Инициализирует то или иное событие в коде программы, сообщая об этом всем зарегистрированных обработчикам.
void delete() Удаляет из реестра данные об обработчике.
boolean deletePlagin() Удаление информации о плагине из БД.
string doShortcode() Ищет в контексте шорткоды и запускает их обработчики.
void doShortcodeTag() Проверка разобранных частей для передачи в обработчик хука.
array downloadPlugin() Метод валидации загружаемого плагина.
boolean extractPluginZip() Распаковка плагина при установке через панель администрирования.
void failtureUpdate() Обновляет информацию о плагине, в случае неуспешного обновления файлов.
void getFolderPlugin() Получает название папки в которой хранится плагин.
object - getInstance() Возвращает единственный экземпляр данного класса.
array getListNameHooks() Возвращает массив названий зарегистрированных хуков.
array getListShortCode() Возвращает массив названий шорткодов.
void getPluginDir() Получает актуальный путь для обновления плагина.
void getPluginsInfo() Считывает информацию обо всех плагинах в директории PLUGIN_DIR.
string getShortcodeRegex() Возвращает шаблон для поиска по регулярному выражению.
void includePluginInFolder() Подключает один конкретный плагин хранящийся в выбранной директории.
void includePlugins() Подключает все плагины соответствующие требованиям.
void init() Инициализирует объект данного класса.
bool. isHookInReg() Проверяет зарегистрирован ли хук.
void plugLocales() Добавляет локаль плагина, если она есть в папке /locales текущего плагина $pluginName.
void prioritet() Вычисляет приоритетность пользовательских функций, назначенных на обработку одного и того же события.
если readInfo() Считывает информацию о конкретном плагине.
void registration() Регистрирует обработчик для действия, занося его в реестр обработчиков.
array shortcodeParseAtts() Возвращает список атрибутов внутри шорткода.
void sortByActivity() Функция для сортировки плагинов по активности.
void sortByPluginName() Функция для сортировки плагинов по алфавиту.
string stripShortcodes() Очищает контент от всех шорткодов.
void stripShortcodeTag() Вырезает все указанные шорткоды.
boolean updatePlugin() Обновление плагина.
Описание методов и примеры их использования
public static boolean checkPluginsUpdate ([array $plugins = array()])
  • array $plugins: массив вида: плагин=>версия

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

public static array createHook (string $hookName, type $arg, [type $result = false])
  • string $hookName: название события.
  • type $arg: массив аргументов.
  • type $result: флаг, определяющий, должна ли пользовательская функция вернуть результат для дальнейшей работы в месте инициализации события.

Выполнение:
PluginManager::createHook()
Создает хук.

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

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

public static void delete (Hook $eventHook)
  • Hook $eventHook: объект содержащий информацию об обработчике и событии.

Выполнение:
PluginManager::delete()
Удаляет обработчика.

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

public static boolean deletePlagin (string $pluginFolder)
  • string $pluginFolder: имя плагина

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

public static string doShortcode (string $content)
  • string $content: - строка для поиска в ней шорткодов.

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

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

public static void doShortcodeTag (array $m)
  • array $m: массив полученный регулярным выражением

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

public static array downloadPlugin (array $file_array)
  • array $file_array: - массив данных загружаемого плагина

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

public static boolean extractPluginZip (string $archiveFile, [string $pluginName = ''])
  • string $archiveFile: - путь до файла с плагином
  • string $pluginName: - название папки плагина

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

public static void failtureUpdate (array $plugin, array $version)
  • array $plugin: название плагина.
  • array $version: версия плагина.

Обновляет информацию о плагине, в случае неуспешного обновления файлов.

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

public static void getFolderPlugin (string $dir)
  • string $dir: - директория в которой хранится плагин.

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

public static array getListShortCode ()

Возвращает массив названий шорткодов.

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

public static void getPluginDir (array $pluginName)
  • array $pluginName: название плагина

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

public static string getShortcodeRegex ()

Возвращает шаблон для поиска по регулярному выражению.

Регулярное выражение содержит 6 различных частей, для обеспечения разбора контента, которые ищут:

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

public static void includePluginInFolder (string $folderName)
  • string $folderName: - наименование папки плагина.

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

public static void includePlugins ()

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

  • Все плагины должны содержаться в каталоге mg-plugins/;
  • Название папки содержащей плагин, может быть любым;
  • Если в папке плагина есть файл index.php и в первом блоковом комментарии он содержит хотябы один из доступных параметров PluginName , то плагин будет подключен. Пример мета информации в index.php
    1.      Plugin NameHello World
    2.      Plugin URIhttp://moguta.ru/plugins/HelloWorld/
    3.      DescriptionПлагин для демонстрации функционала
    4.      AuthormogutaTeam
    5.      Version1.0

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

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

public static void plugLocales ($pluginName $pluginName)
  • $pluginName $pluginName: название плагина.

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

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

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

Используется для сравнения приоритетов в функции.

public static если readInfo (string $folderName)
  • string $folderName: путь к файлу index.php плагина

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

public static void registration (Hook $eventHook)
  • Hook $eventHook: объект содержащий информацию об обработчике и событии.

Выполнение:
PluginManager::registration()
Регистрирует пользовательскую функцию в качетсве обработчика для события.

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

public static array shortcodeParseAtts (string $text)
  • string $text: строка

Возвращает список атрибутов внутри шорткода.

в виде массива пар - {ключ:значение}

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

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

public static void sortByPluginName ($a $a, $b $b)
  • $a $a: название первого плагина.
  • $b $b: название второго плагина.

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

public static string stripShortcodes (string $content)
  • string $content: строка с шорткодами.

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

public static void stripShortcodeTag (array $m)
  • array $m: массив с шорткодами.

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

public static boolean updatePlugin ( $pluginName,  $folder,  $version, string $pluginFolder)
  • string $pluginFolder: имя плагина

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