Структура компонента: папка site
Структура компонента: папка administrator
Установочный файл name_component.xml
Любой компонент представляет собой код, состоящий из папок и файлов. Как правило, такой код строится по принципу MVC - model-view-controller.
Model - модель. Осуществляет сбор и обработку данных.
View - представление, вид. Отвечает за вывод данных на экран (шаблон вывода).
Controller - контроллер. Отвечает за взаимодействие с пользователем; основная задача контроллера - запускать соответствующие файлы в соответствии с запросом пользователя.
Как правило, код любого компонента создаётся для самого сайта и для панели администратора, поэтому основной установочный пакет (сжатый инсталляционный файл с расширением .zip и т.п.) состоит из двух папок site и admin, которые после установки окажутся в папках сайта components и administrator/components соответственно. Так же обязательным является наличие в установочном пакете установочного файла с расширением .xml, без которого Joomla при установке выдаст ошибку. Более подробно рассмотрим этот файл в конце главы, а пока посмотрим на основную структуру установочного пакета:
-
1 admin
-
1 site
-
2 name_component.xml
Обратите внимание: файл .xml имеет такое же название, как и сам компонент. Когда заготовка для компонента будет готова и правильно составлен установочный файл, пакет сжимается при помощи архиватора, например, 7-ZIP и сохраняется с таким же названием, как и создаваемое расширение, после чего его можно будет загрузить на сайт.
Важно: любые папки в пакете не должны быть пустыми, иначе система выдаст ошибку! Что бы этого не случилось, всегда создавайте внутри каждой вложенной папки (как минимум) пустой файл index.html.
Структура компонента: папка site
- 2 name_component.php
- 2 controller.php
- 1 model
- 1 view
- 2 index.html
2 name_component.php
Это основной файл компонента; именно к нему обращается система при создании страницы. Здесь, как правило, создаются общие для компонента константы, создаётся класс компонента, запускается контроллер (передаётся управление контроллеру), и выполняется переадресация.
2 controller.php
Основная задача контроллера (от англ. "controller" - устройство управления, многоканальный переключатель) - запустить какой-либо файл, соответствующий запросу пользователя; это может быть в папке view , выводящий на экран запрошенную страницу компонента (шаблон), либо файл в папке model , выполняющий какие-либо запросы, расчёты и прочие подобные действия.
1 model
Здесь находятся папки и файлы, отвечающие за "логику", т.е. выполняющие какие-либо расчёты, получающие какие-либо данные и так далее. После выполнения операций результат будет выведен на экран, при помощи запуска соответствующего файла шаблона в папке view .
1 view
Здесь находятся файлы, отвечающие за вывод (представление) компонента на экране. Это могут быть простые шаблоны, в которых описано расположение всех элементов, а могут быть более сложные файлы, выполняющие какие-либо дополнительные расчёты.
Структура компонента: папка administrator
Папка admin устроена аналогично папке site : в ней так же есть главный файл name_component.php, к которому обращается система при поступлении соответствующего запроса; этот файл точно так же передаёт управление контроллеру и так далее.
Дополнительные папки и файлы
В обоих частях компонента могут так же создаваться любые другие дополнительные папки и файлы; это зависит от того, какой компонент вы создаёте, от того, какие задачи он должен решать. В любом случае вы должны заранее продумать общую структуру сайта, что бы не создать слишком сложную программу, в которой сами же потом будете с трудом разбираться. А вот создавать дополнительные папки и файлы лучше после того, как вы установите заготовку компонента на сайт, поэтому данный вопрос будет рассмотрен в следующих главах.
Установочный файл name_component.xml
При создании данного файла будьте предельно внимательны, любая ошибка даже в одну букву не позволит установить заготовку на сайт!
Данный файл содержит общую информацию о компоненте (название, дата создания, автор и так далее), и (как минимум) информацию о имеющихся папках и файлах, включая вложенные. Так же может присутствовать и дополнительная информация, например, об имеющихся инсталляционных и деинсталляционных файлах, медиафайлах и так далее. Для заготовки вполне будет достаточно описать основные папки и вложенные в них файлы, но если вы уже точно знаете, какой компонент вы будете создавать и какие таблицы использовать в базе данных, вы можете сразу всё это прописать в установочном файле; в этом случае таблицы будут созданы автоматически и вам не придётся это делать вручную. Код установочного файла выглядит так:
1 <?xml version="1.0" encoding="utf-8"?>
2 <extension type="component" version="1.0.0" method="upgrade">3 <name>my_component</name>
4 <creationDate>29.05.2020</creationDate>
5 <author>S.D.A.</author>
6 <authorEmail>Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.</authorEmail>
7 <authorUrl>https://web-development-school.ru/</authorUrl>
8 <copyright>Copyright 2020</copyright>
9 <license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
10 <version>2.5</version>
11 <description></description>12 <install>
13 <sql>
14 <file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
15 </sql>
16 </install>
17 <files folder="site">
18 <filename>index.html</filename>
19 <filename>impg.php</filename>
20 <filename>controller.php</filename>
21 <folder>views</folder>
22 <folder>processing</folder>
23 <folder>config</folder>
24 <folder>images</folder>
25 </files>
26 <administration>
27 <menu>IMPG</menu>
28 <files folder="administrator">
29 <filename>index.html</filename>
30 <filename>impg.php</filename>
31 <filename>controller.php</filename>
32 <folder>sql</folder>
33 <folder>views</folder>
34 </files>
35 </administration>36 </extension>
Строки 1-2 указывают версию .xml, тип расширения (компонент), кодировку и метод установки (upgrade).
Строки 3-11 указывают название компонента, дату создания, автора, e-mail автора, адрес сайта автора, copyright, лицензию и версию компонента.
Строки 12-16 содержат информацию о установочном файле для базы данных (читайте о нём ниже).
Строки 17-25 информируют о наличии папки site и вложенных в неё папках и файлах.
Строки 26-35 информируют о наличии папки administration и вложенных в неё папках и фалах.
Строка 36 - закрывающий тег (открывающий находится в строке 2).
Как создать заготовку компонента и установить её на сайт, читайте в следующей главе.