Как создать свой модуль?
Введение
Начиная с версии Screen Squid 1.15 появилась возможность расширить функциональность Screen Squid добавляя новые возможности и использовать их в рамках "одного окна". Здесь изложена информация о том, как добавить новый модуль и в качестве примера, будет написан модуль "Hello World" на PHP.
Среда разработки
Для того, чтобы начать разрабатывать модуль, вам понадобится:
- установленный интерпретатор PHP > 5.3 версии;
- любое удобное средство для написания кода(например Geany, Atom, Блокнот или другое);
- развернутый на веб-сервере дистрибутив Screen Squid >= 1.15 версии.
Состав модуля
Модуль обязательно состоит из файлов:
№ | Наименование | Описание |
---|---|---|
1 | index.php | Фронтенд для пользователя. Здесь необходимо отображать какой-либо текст и/или функционал, который пользователь увидит нажав на название модуля на странице "Менеджер модулей". |
2 | module.php | Здесь описывается класс модуля с необходимыми функциями и процедурами. |
Важное замечание: придумав название модуля, например HelloWorld, вы должны создать каталог HelloWorld в директории /screensquid/modules.
Важное замечание 2: Название класса должно точно совпадать с названием каталога в котором размещен модуль. Например, в каталоге HelloWorld, в файле module.php, класс должен быть объявлен так - class HelloWorld
. Название регистрозависимо.
Можно создавать дополнительные файлы, например, если они нужны для навигации по разным страницам модуля. В некоторых модулях мы добавляем скрипты на Perl, которые используются в бэкэнде, например, для подсчёта трафика по алиасу в модуле Quotas. Другими словами, вы можете создать сколько угодно файлов в каталоге, на любых языках программирования если они необходимы вашему модулю.
Обязательные функции класса
При создании класса модуля, обязательно наличие следующих функций:
№ | Наименование функции | Описание |
---|---|---|
1 | __construct | Конструктор модуля, вызывается при создании экземпляра объекта в index.php модуля. Рекомендуется здесь создавать подключение к базе данных и языковые файлы модуля. |
2 | GetDesc | Возвращает описание модуля. Например, "Модуль HelloWorld, который ничего не делает". |
3 | Install | Производит необходимые действия для установки модуля. Вызывается из интерфейса менеджера модулей нажатием ссылки "Установить". После успешной установки, перезагрузите страницу. Вы увидите название вашего модуля раскрыв список "Менеджер модулей" в главном меню. |
4 | Uninstall | Производит необходимые действия для удаления модуля. Вызывается из интерфейса менеджера модулей нажатием ссылки "Удалить" |
Чтобы Screen Squid "узнал" о том, что модуль установлен, необходимо занести информацию в таблицу scsq_modules. Пример SQL запроса для добавления модуля в таблицу:
INSERT INTO scsq_modules (name,link) VALUES ('HelloWorld','modules/HelloWorld/index.php');";
Итак, пишем код
module.php
<?php
?>
index.php
<?php include("../../config.php");
//Создадим экземпляр класса
echo "<h2>Модуль Hello World</h2><br />";
После создания этих двух файлов, ваш первый модуль для Screen Squid готов. Вы можете начать дополнять их необходимым вам функционалом.
Мультиязыковая поддержка
В файле index.php подключается главный конфигурационный файл config.php, где есть параметр $language. Вы можете использовать его для того, чтобы осуществить мультиязыковую поддержку в своём модуле. Создайте каталог langs в директории с модулем и положите туда массив переменных $_lang
. Примером файла может служить основные языковые файлы, которые размещены в каталоге screensquid/lang. После того, как вы создали эти файлы, подключите их через директиву include. Имеет смысл давать языковым файлам смысловую окраску вида - ru - русский, en - английский и так далее.
Идеи, баги, вопросы?
Сообщи нам t.me/screensquid