Разрабатывая собственные плагины и темы оформления для GetSimple CMS, периодически сталкиваюсь с требованиями заказчика по согласованию их работы с плагинами других разработчиков. Для этого, как минимум, требуется проверить статус стороннего плагина - активирован или деактивирован. Как это реализовать - зависит от разработчика, большинство из которых используют проверку существования функции из стороннего плагина по имени: если функция с заданным именем существует, значит плагин активирован. Я покажу корректный способ, использующий возможности самой системы управления контентом GetSimple CMS.
Статусы установленных в системе плагинов, хранятся в глобальной переменной $live_plugins
в виде ассоциативного массива, где ключ - имя файла плагина с расширением, а значение - строка “true”, если плагин активирован, или “false”. Для проверки содержания переменной $live_plugins
создайте компонент со следующим PHP кодом.
<?php
global $live_plugins;
echo '<code><pre>';
var_dump($live_plugins);
echo '</code></pre>';
?>
Теперь, зная имя файла плагина, не составляет проблемы проверить его статус.
<?php
global $live_plugins;
$plugin_file = 'InnovationPlugin.php';
if (isset($live_plugins[$plugin_file]) && $live_plugins[$plugin_file] == 'true') {
echo 'Плагин активирован';
} else {
echo 'Плагин деактивирован';
}
?>
Следующий код выведет сообщение, содержащее полное название плагина, если плагин активирован, или сообщения, содержащие имя файла плагина, если плагин деактивирован или не установлен.
<?php
global $live_plugins, $plugin_info;
$plugin_file = 'InnovationPlugin.php';
if (isset($live_plugins[$plugin_file])) {
if ($live_plugins[$plugin_file] == 'true') {
$plugin_name = $plugin_info[pathinfo($plugin_file, PATHINFO_FILENAME)]['name'];
echo "Плагин <em>$plugin_name</em> активирован";
} else {
echo "Плагин <em>$plugin_file</em> деактивирован";
}
} else {
echo "Плагин <em>$plugin_file</em> не установлен";
}
?>
Использование проверки статусов плагинов предотвращает возможные ошибки в работе собственных плагинов и тем оформления, исключая или добавляя зависимые от них функциональные возможности.