Продолжение серии уроков по созданию MVC компонента

В этой части мы рассмотрим настройки административной части и принципы работы MVC компонента

После установки компонента в административной части в меню Компоненты появится подпункт Форма обратной связи
При входе в этот компонент нам будут доступны настройки компонента, и список записей которыми мы можем управлять.
Установленный компонент в админке
Теперь нас интересуют настройки нашего компонента, при нажатии на кнопку Настройки мы попадем в конфигурацию компонента!
Поля которые мы видим в настройках этого компонента создаются через специальный конфигурационный xml файл который находится по адресу administrator/components/com_form/config.xml
Установленный компонент в админке

Теперь нам нужно внести изменения в файле config.xml

Для начала удаляем секцию:

<field name="limit" type="text" value="10" label="Количество записей" />

Теперь нам нужно ввести три своих поля:

  1. Получатель - на какой E-mail придет сообщение с формы.
  2. Тема письма: - тема письма.
  3. Сообщение об удачной отправке - сообщение которое отобразится пользователю в случае успешной отправки сообщения

После добавления новых полей

Для этого вносим в секцию global три новых поля. Пример секции c этими полями ниже

<fieldset name="global" label="JGLOBAL_FIELDSET_OPTIONS">
	<field name="recipient" type="text" value="" label="Получатель:"/>
	<field name="subject" type="text" value="" label="Тема письма:"/>
	<field name="message" type="editor" value="" label="Сообщение об удачной отправке:" buttons="false" filter="RAW"/>
</fieldset>

После этого поля нужно заполнить и нажать на кнопку сохранить!

 

Далее для удобства создадим пункт меню ссылающийся на нашу форму обратной связи в менеджере меню!
Как мы можем заметить у нас две записи: Форма обратной связи и Сообщение
Вид Сообщение нам не нужен! что бы он не выводился удаляем файл default.xml который лежит по адресу: components/com_form/views/result/tmpl/default.xml
После удаления этого файла при создании пункта меню вид "Сообщение" будет недоступен
Создание пункта меню для формы
После создания пункта меню на сайте появится базовая форма с одним полем! После добавления новых полей

Итак основные принципы работы MVC компонента:

После того как мы создали пункт меню и переходим на него на самом деле открывается ссылка: index.php?option=com_form&view=form
Наш компонент сначала проинициализируется через точку входа components/com_form/form.php и если не будет передана задача в переменной task у нас запустится контроллер по умолчанию из файла controller.php и в нем выполняется метод display() который подключит вид из папки components/com_form/views/form/view.html.php

Наш вид подключит модель из папки components/com_form/models/form.php которая загрузит форму и и вернет её в модель.

После этих действий наш вид отобразит шаблон котрый лежит по адресу: components/com_form/views/form/tmpl/default.php и мы увидим непосредственно нашу форму с одним полем!

Когда мы нажимаем на кнопку "Сохранить" в нашей форме происходят те же самые процессы инициализации!
Но так как в форме есть передача task с названием form.save это означает что подключится контроллер который лежит в components/com_form/controllers/form.php.
Этот контроллер наследуется от класса JControllerForm в котором есть метод save который произведет валидацию формы, и если форма валидна и все данные корректны вызовет метод save в модели components/com_form/models/form.php и если наша модель из метода save вернет true то нас перекинет на вид который в нашем контроллере указан в переменной $this->view_list = 'Form';, то есть мы перейдем на этот же вид! и если наша модель из метода save вернет False то загрузится текущий вид, выведется сообщений об ошибке и все незаполненные поля сохранят введенные в них до отправки данные!

На этом урок окончен! В следующем уроке мы приступим к непосредственному написанию программного кода для работы нашей формы