Разрабатываем Model — View — Controller (MVC) компонента. Часть 2 (продолжение)

Категории: Joomla

Как создать контроллер

Итак, мы поставили перед собой задачу – визуализировать надпись Hello Mister. То есть – наш контроллер будет достаточно простым. Проводить какие-либо манипуляции с информацией не понадобится. Все операции, которые вам потребуются – загрузка View. В нашем случае будет работать только метод display(). Почти все требуемые нам функции уже находятся в JController, вам необходимо просто сделать ссылку на способ JController::display(). Код нашего контроллера будет таким:

< ?php
 defined( '_JEXEC' ) or die( 'Restricted access' );
jimport('joomla.application.component.controller');
 
 class HelloController extends JController
{
/**
* выводим на монитор
*
* @access    public
*/
 
function display()
{
parent::display();
}}
?>

То есть, в данном примере конструктор JController всегда будет выводить display() по умолчанию, хотя можно задавать и другие задачи методом registerDefaultTask() ). Метод display() показан здесь только для примера, так как он выводится по умолчанию. JController::display() определяет имя View (вида) и загружаемый шаблон. При создании пункта меню, который будет ссылаться на наш компонент, Менеджер разрешает администратору выбирать вид. У нас в примере только один вид View — (hello) и один шаблон темы (default).

Как создать вид (View)

Для этого необходимо извлечь отображаемые данные и передать их в default при помощи JView::assignRef. Код нашего View будет выглядеть следующим образом:

< ?php
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.application.component.view');
 
class HelloViewHello extends JView
{
 
function display($tpl = null)
 {
 $greeting = "Hello World!";
 $this->assignRef( 'greeting', $greeting );
 parent::display($tpl);
 }
}
?>

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

Все шаблоны тем Joomla – это файлы php, и из них создается вид информации. Метод JView::assignRef, с помощью которого передаются данные, определяет переменные, поучаемые из шаблона default при помощи метода $this->propertyname. Наш простенький шаблон всего лишь выводит на экран монитора приветственную надпись:

< ?php  
defined('_JEXEC') or die('Restricted access'); ?>

< ?php echo $this->greeting; ?>

Создаем файл hello.html

Компонент можно устанавливать двумя способами – через FTP и через БД. Третий, и самый необременительный способ – создание файла xml. Тогда Joomla все сделает сама. Сам файл xml может быть наполнен как информацией, так и инструкциями по установке, такие, как:

  1. Общие данные об авторе и самом компоненте
  2. Файлы, которые необходимо передать из архива, и путь их копирования.
  3. Можно добавлять скрипты, которые помогают при удалении или установке компонента.
  4. Можно добавлять файлы, содержащие sql-запросы, исполняющимися при установке компонента или его удалении.

Наш вновь созданный файл xml будет иметь следующее наполнение:

< ?xml version="1.0" encoding="utf-8"?>
< !DOCTYPE install SYSTEM "http://dev.joomla.org/xml/1.5/component-install.dtd">

 Hello
 < !—- Здесь элементы, без которых можно обойтись-->
 23.02.2008
 Ivanov
 
 http://www.vashsite.ru
 GNU/GPL
 Лицензионная информация
  Версия нашего созданного компонента
Краткое описание компонента
< !—- Копируем файлы во front-end -->

 index.html
 hello.php
 controller.php
 views/index.html
 views/hello/index.html
 views/hello/view.html.php
 views/hello/tmpl/index.html
 views/hello/tmpl/default.php
 

 < !—- меню в панели администратора -->
 Hello Mister.  
 < !—копируем файлы в административную панель -->
 
 index.html
 admin.hello.php
   
 

Еще вам нужно будет создать в каталоге администратора admin файлы admin.hello.php, index.html и controller.php. Вот вы и создали самый простой компонент в Joomla.




Подпишитесь на рассылку блога
max1net.com: