Если вы разработчик плагинов – вам следует ознакомиться с новой системой обновлений, интегрированной в GetSimple 3.1. Начиная с этой версии, GetSimple уведомляет пользова-теля при появлении новой версии плагина для загрузки в секции сайта GS Extend. При разработке плагина для достижения его совместимости с новой системой необходимо следовать рекомендациям, изложенным в секции ВИКИ "Взаимодействие плагинов и секции Extend сайта get-simple.info"
Определение версии GetSimple – не такая простая задача, так как единственная доступная функция return_site_ver()
, выводящая на экран номер версии в GS 2.03 и возвращающая результат в версии 3.0b уже устарела (прим. переводчика – пометка о том, что данная функция устарела (??) в списке тэгов англоязычной Вики отсутствует).
На самом деле, по заявлению разработчиков, return_site_ver()
применяется до сих пор и не является устаревшей.
Самый простой способ определить, установлен ли плагин под GetSimple 2.03 или 3.0+:
$isV3 = function_exists('get_site_version');
Самый правильный способ определения версии – следующий (используйте его только внутри функций, чтобы не засорять глобальное пространство имен!):
include(GSADMININCPATH.'configuration.php'); $version = GSVERSION;
Для запуска функции вашего плагина myplugin_function при удалении страницы в GetSimple 2.03 и 3.0+ применяйте следующий код:
// GetSimple 3.0+ add_action('page-delete', 'myplugin_function'); // GetSimple 2.03 if (!function_exists('get_site_version') && basename($_SERVER['PHP_SELF']) == 'deletefile.php') { myplugin_function(); }
В этой статье приводится описание возможности выводить на экран сообщения в бэкенд-страницах плагина.Предположим, есть 3 переменных $isSuccess
(успешно), $canUndo
(возможная отмена) и $msg
(сообщение пользователю), для соответствующих сообщений для пользователя.
Для вывода на экран нужного сообщения, добавьте следующий код к вашему плагину myplugin
<?php if (isset($msg)) { if ($canUndo) $msg .= ' <a href="load.php?id=myplugin&undo">' . i18n_r('UNDO') . '</a>' ?> <script type="text/javascript"> $(function() { $('div.bodycontent').before('<div class="<?php echo $isSuccess ? 'updated' : 'error'; ?>" style="display:block;">'+ <?php echo json_encode($msg); ?>+'</div>'); $(".updated, .error").fadeOut(500).fadeIn(500); }); </script> <?php } ?>
Дата публикации страницы в XML-файлах GS хранится в английском текстовом формате, который может быть сконвертирован в UNIX-время:
$timestamp = strtotime($data->pubDate);
GetSimple использует для отображения дат функцию date, которая подходит и для других языков, если не требуется показывать названия дней недели и месяцев, так как они всегда будут на английском.
Для вывода на экран локализованного значения даты следует применять следующий метод:
$dateLocale = 'de_DE,de,ger,deu'; // или используйте $LANG или соответствующую установку в вашем плагине // для совместимости с разными ОС должны допускаться различные локали $dateFormat = "%A, %d.%m.%Y - %H:%M"; // эта запись должна быть в языковом файле вашего плагина // возможные значения формата – в документации к PHP-функции strftime $oldlocale = setLocale(LC_TIME, '0'); // сохраняем старую локаль setlocale(LC_TIME, preg_split('/s*,s*/', $dateLocale)) echo strftime($dateFormat, $date); // $date - UNIX-время (timestamp) setLocale(LC_TIME, $oldlocale); // восстанавливаем старую локаль
Этот важнейший для сайта (sitewide) cookie-файл в GS 3.0 содержит корректную информацию только для пути /admin.
Способа (или простого способа?) исправить ситуацию для фронтенда не существует. Тем не менее, если вам для бэкенда требуется совершить какое-то действие, например, под-ключить какой-то php-файл из папки плагина, вы можете добавить следующий код к ва-шему плагину, например, сразу после установки хуков:
if (!myplugin_is_frontend() && myplugin_gsversion() == '3.0') { // workaround for GetSimple 3.0: if (isset($_COOKIE['GS_ADMIN_USERNAME'])) setcookie('GS_ADMIN_USERNAME', $_COOKIE['GS_ADMIN_USERNAME'], 0, '/'); } function myplugin_is_frontend() { return function_exists('get_site_url'); } function myplugin_gsversion() { @include(GSADMININCPATH.'configuration.php'); return GSVERSION; }
Замените myplugin наименованием своего плагина.
На главную Содержание