| Урок 3. Добавление Модели (Основы программирования для Joomla 1.5) |
|
|
|
В прошлом уроке был создан простой компонент на оснвое view-controller для CMS Joomla 1.5, который выводил "Hello World!" в окно браузера. Но для вывода "Hello World!" мы его вставили в код Вида (view), который не соответствует MVC, потому что Вид должен только выводить данные, и не должен содержать их. В этом уроке мы перенесем данные из вида в Модель. В дальнейшем вы увидите удобство всего этого. Создание моделиМодель - часть компонента, которая предоставляет данные для представления их по его запросу посланному через Контроллер. Такая схема часто освобождает от рутинной работы и от беспорядка в коде. Также этот метод предоставляет возможность управлять данными удобным способом в дополнение к коду, который посылает запрос данных из Модели. Код моделиОбразец кода для класса Модели site/models/hello.php:
<?php
/**
* Hello Модель для "Hello" Компонета
*
* @package Автор
* @package component/model/models/hello.php
* @link URL Автора
* @license Тип лицензии ( GNU/GPL )
*/
// Check to ensure this file is included in Joomla!
Defined ('_JEXEC') or die();
jimport( 'joomla.application.component.model' );
/**
* Hello Model
*
* @package Автор
* @subpackage Components
*/
class HelloModelHello extends JModel
{
/**
* Gets the greeting
* @return string The greeting to be displayed to the user
*/
function getGreeting()
{
return 'Hello, World!';
}
}
Обратите внимание на строку, которая начинается с jimport. Функция jimport используется для загрузки файлов из фрэймворка Joomla. В нашем случае подгружается структура, которая требуются для нашего компонента. Этот запрос загрузит файл /libraries/joomla/application/component/model.php. Точки "." есть директивными слешами, и последняя часть - имя загружаемого файла. Все файлы загружаются относительно библиотек. Далее в коде мы определяем необходимый класс для JModel class, так как наша модель является продолжением этого класса. Создав Модель, необходимо изменить Представление, добавить запрос к Модели для получения строки приветствия. Использование модели ( Model )Структура Joomla 1.5 организована таким способом, что контроллер автоматически загрузит модель, которая имеет то же название что и представление ( view ) и передаст доступ к своему классу . Так как Представление называется "Hello", модель "Hello" будет автоматически загружена и опубликована в представление ( view ). Поэтому, мы можем легко объявить функцию класса модели, используя метод JView:: в строке JView:: getModel (). Код файла view.html.php теперь будет выглядеть так:
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.application.component.view');
class HelloViewHello extends JView
{
function display($tpl = null)
{
$model =& $this->getModel();
$greeting = $model->getGreeting();
$this->assignRef( 'greeting', $greeting );
parent::display($tpl);
}
}
?>
Добавление файла в установкуФрэймворк Joomla будет искать нашу модель в каталоге models. Поэтому изменим xml-файл. Код для нового файла hello.xml: <?xml version="1.0" encoding="utf-8"?> Теперь мы имеем простой MVC компонент. Каждый элемент компонента очень прост, при этом компонент уже обладает более большей гибкостью и возможностью. Архив исходных файлов для этого урока можно скачать по этой ссылке:
Предыдущие уроки по Основах программирования для Joomla 1.5: |

Z417310586352

