FL.ru – фриланс сайт удаленной работы №1. Поиск удаленной работы, фрилансеры.

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

Категории: Joomla

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
< ?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 будет выглядеть следующим образом:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< ?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. Наш простенький шаблон всего лишь выводит на экран монитора приветственную надпись:

1
2
3
< ?php  
defined('_JEXEC') or die('Restricted access'); ?>
<h1>< ?php echo $this->greeting; ?></h1>

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
< ?xml version="1.0" encoding="utf-8"?>
< !DOCTYPE install SYSTEM "http://dev.joomla.org/xml/1.5/component-install.dtd">
<install type="component" version="1.5.0">
 <name>Hello</name>
 < !—- Здесь элементы, без которых можно обойтись-->
 <creationdate>23.02.2008</creationdate>
 <author>Ivanov</author>
 <authoremail></authoremail>
 <authorurl>http://www.vashsite.ru</authorurl>
 <copyright>GNU/GPL</copyright>
 <license>Лицензионная информация</license>
  <version>Версия нашего созданного компонента</version>
<description>Краткое описание компонента</description>
</install>
1
2
3
4
5
6
7
8
9
10
11
< !—- Копируем файлы во front-end -->
<files folder="site">
 <filename>index.html</filename>
 <filename>hello.php</filename>
 <filename>controller.php</filename>
 <filename>views/index.html</filename>
 <filename>views/hello/index.html</filename>
 <filename>views/hello/view.html.php</filename>
 <filename>views/hello/tmpl/index.html</filename>
 <filename>views/hello/tmpl/default.php</filename>
 </files>
1
2
3
4
5
6
7
8
9
<administration>
 < !—- меню в панели администратора -->
 <menu>Hello Mister.</menu>  
 < !—копируем файлы в административную панель -->
 <files folder="admin">
 <filename>index.html</filename>
 <filename>admin.hello.php</filename>
 </files>  
 </administration>

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




Подпишитесь на рассылку блога
max1net.com:
Уже подписались человек
Укажите свой e-mail