Seagull Framework - Знакомство, часть 3
В данной статье я продолжаю изготовление нашего первого модуля:
Регистрация модуля
В целях безопасности Seagull устроен так, что каждый модуль, который добавляется в папку modules, нужно сначала зарегистрировать. Делается это очень просто - сперва заходите на сайт как главный администратор, затем в администраторском меню заходите на вкладку General -> Manage Мodules и ставите птичку напротив show uninstalled modules (показать неустановленные модули). В появившемся списке выбираете helloworld, нажимаете на плюсик напротив - и всё, Seagull должен выдать вам надпись The helloworld module was successfully installed (Модуль helloworld был успешно установлен).
Запрашиваете Ваш новый менеджер
А сейчас проверим, работает ли обращение к данному менеджеру. Для это в адресной строке браузера набираете следующий URL:
http://your-site.com/seagull/index.php/moduleName/managerName/
где moduleName - это имя модуля, а managerName - это, соответственно, имя менеджера.
В нашем случае адрес URL будет выглядеть так:
http://your-site.com/seagull/index.php/helloworld/HelloWorldMgr/
После чего на экране должно появится окно Seagull, но так как менеджер ничего пока не делает, в середине будет просто белое пустое пространство. Но если стандартное окно Seagull всё-таки появляется, значит всё работает правильно.
Но обращение к менеджеру будет работать и даже вот так:
http://your-site.com/seagull/index.php/helloworld/HelloWorld/
и так:
http://your-site.com/seagull/index.php/helloworld/helloworld/
То есть, как видите, регистр не учитывается, и приписку Mgr можно тоже опустить. В данном случае будет работать даже вот такой адрес:
http://your-site.com/seagull/index.php/helloworld/
так как данный менеджер является менеджером модуля helloworld по умолчанию.
Добавление данных
Итак, каркас готов, теперь добавляем непосредственно сам вывод фразы Hello World!
Проще всего просто добавить метод в класс HelloWorldMgr.php:
function display(&$output)
{
print 'Hello World!';
}
function display(&$output)
{
print 'Hello World!';
}После чего обновляете страницу, и Вы увидите надпись Hello World! в самом верху, над хедэром (header) страницы.
Но для того, чтобы встроить данную надпись туда, куда нам нужно - то есть внутри окна, надо сделать вывод немного по-другому.
Создание шаблона
В директории templates создаёте файл helloWorld.html:
|-- [modules]
| |-- [helloworld]
| | |-- [classes]
| | | `-- HelloWorldMgr.php
| | |-- [data]
| | | `-- data.default.my.sql
| | |-- [templates]
| | | `-- helloWorld.html
| | `-- conf.ini
|-- [modules]
| |-- [helloworld]
| | |-- [classes]
| | | `-- HelloWorldMgr.php
| | |-- [data]
| | | `-- data.default.my.sql
| | |-- [templates]
| | | `-- helloWorld.html
| | `-- conf.iniВ этом файле пишите название переменной, в которую будет осуществляться вывод - название переменной должно быть в фигурных скобках, например:
{testVariable}
{testVariable}Соединяете всё это вместе
Ну и, соответственно, в конце необходимо прописать в функции вывода шаблон, и надпись, которая будет выводиться в данную переменную. Переписываем метод display():
class HelloWorldMgr extends SGL_Manager
{
function display(&$output)
{
$output->template = 'helloWorld.html';
$output->testVariable = 'Hello World!';
}
}
class HelloWorldMgr extends SGL_Manager
{
function display(&$output)
{
$output->template = 'helloWorld.html';
$output->testVariable = 'Hello World!';
}
}Всё, теперь надпись Hello World! появляется как раз в том самом белом окне!
Оригинал статьи на английском .
Ёж


