You are hereБлоги / Ёж's blog / Seagull Framework - Знакомство, часть 3

Seagull Framework - Знакомство, часть 3


Ёж 04 May 2009

В данной статье я продолжаю изготовление нашего первого модуля:

Регистрация модуля

В целях безопасности 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!';
}

После чего обновляете страницу, и Вы увидите надпись Hello World! в самом верху, над хедэром (header) страницы.

Но для того, чтобы встроить данную надпись туда, куда нам нужно - то есть внутри окна, надо сделать вывод немного по-другому.

Создание шаблона

В директории templates создаёте файл helloWorld.html:

|-- [modules]
|   |-- [helloworld]
|   |   |-- [classes]
|   |   |   `-- HelloWorldMgr.php
|   |   |-- [data]
|   |   |   `-- data.default.my.sql
|   |   |-- [templates]
|   |   |   `-- helloWorld.html
|   |   `-- conf.ini

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

{testVariable}

Соединяете всё это вместе

Ну и, соответственно, в конце необходимо прописать в функции вывода шаблон, и надпись, которая будет выводиться в данную переменную. Переписываем метод display():

class HelloWorldMgr extends SGL_Manager
{
    function display(&$output)
    {
        $output->template = 'helloWorld.html';
        $output->testVariable = 'Hello World!';
    }
}

Всё, теперь надпись Hello World! появляется как раз в том самом белом окне!

Оригинал статьи на английском тут.

Ёж

]]>]]>
ССылки

RSS-материал