Как создать дополнение для Ruxe Engine

При создании дополнения полезным будет использовать Ruxe Engine API.

1. Файловая структура дополнения.

Все дополнения располагаются в каталоге /includes/plugins/. Они могут использовать папку /conf/ для хранения своих настроек. Изменять системные файлы запрещается.

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

ЭлементОписание
название_дополненияИмя папки дополнения. Настоятельно рекомендуется использовать только английские буквы и/или цифры. Каждая новая папка - новое дополнение.
admin.phpВ данном файле находится код, который автоматически подключается (через include) в Админ-центре, в разделе "Дополнения".
Примечание:страница дополнения не будет отображаться до тех пор, пока дополнение не будет включено (Админ-центр => Другие модули => Дополнения => Настроить => название_дополнения => Включить).
functions.phpЭтот файл подключается (через include) после обработки системного файла functions.command.php. В нём находятся команды дополнения.
info.datВ этом файле находится справочная информация о дополнении (название, версия, описание, автор, адрес сайта дополнения, параметр использования промежуточных страниц).

2. Пример содержимого файла admin.php.


<?
    /*
        То, что пользователь может увидеть на странице дополнения, должно быть в переменной $print. Не следует допускать прямой вывод на страницу.
    */
    $print = "Тут могли бы быть настройки дополнения";
?>


3. Пример содержимого файла functions.php.


<?
    /*
        Если существует $_GET['action'] при запросе страницы, то система сравнивает с своей базой действий значение $_GET['action'] и, если не находит соответствие, выдаёт ошибку ("Действие не найдено").
Вы можете добавить своё действие. Для этого в info.dat переменная $addaction должна равняться единице ($addaction = 1;). Вашим действием станет имя каталога дополнения (в данном случае example). В действии обязательно должны использоваться переменные $openpage и $pagetitle. $openpage = текст страницы, а $pagetitle - заголовок.
        Пример:
        function here_example()
        {
            echo '<a href="?action=example">Проверка</a>';
        };
        if (isset($_GET['action']))
        {
            if ($_GET['action']=="example")
            {
                $openpage = "Проверка пройдена!";
                $pagetitle = "Сообщение";
            };
        };

        В действии можно включить автоматическую переадресацию. Но в этом случае страница действия не будет отображена, если отключена опция показа промежуточных страниц в админ-центре, а будет сразу переадресация на указанный адрес. Для включения автоматической переадресации необходимо заполнить переменную $pageredirect.
        Пример:

        function here_example()
        {
            echo '<a href="?action=example">Проверка</a>';
        };
        if (isset($_GET['action']))
        {
            if ($_GET['action']=="example")
            {
                $openpage = "Проверка пройдена!";
                $pagetitle = "Сообщение";
                $pageredirect = "http://mysite.domain";
            };
        };
    */
    function here_example()
    {
        echo "Hello World!";
    };
    if (isset($_GET['action']))
    {
        if ($_GET['action']=="example")
        {
            $openpage = "привет";
            $pagetitle = "Тест";
            $pageredirect = "http://engine.ruxesoft.net";
        };
    };
?>


Пример содержимого файла info.dat.


<?
    /*
        Справочная информация о дополнении
        $name - имя Вашего дополнения
        $version - версия
        $description - описание
        $author - имя автора
        $site - адрес сайта дополнения
        $addaction - доступные значения 1 и 0. Включает и отключает соответственно использование промежуточных страниц для дополнения.
    */
$name = "Тестовый модуль";
$version = "1.0";
$description = "Пример дополнения";
$author = "Ruxe Engine";
$site = "http://engine.ruxesoft.net/";
$addaction = 1;
?>