01 - Создание компонента и его структуры joomla 3.x
Структура нашего компонента. Ниже список файлов которые содержит наш компонент. Посмотрите структуру, какой файл для чего используется, а в конце скачайте заготовку. Посмотрите внимательно на структуру и её описание.
Для успешного усвоения материала, не переименовывайте компонент, а сделайте именно так как написано в уроке. Так вы быстрее поймёте материал и быстрее разберётесь в структуре, а иначе будет путаница, проверенно на себе!
Подобная структура используется во всех компонентах joomla.
Файлы для части сайта
- Создадим корневую папку com_mycomponents, а в ней папку site и поместим в неё следующие файлы и папки. (mycomponents) так назовём наш компонент.
- index.html защита от прямого обращения к файлу.
- controller.php контроллер.
- mycomponents.php это точка входа в компонент.
- css/index.html
- css/mycomponent.css каскадные таблицы стилей для сайта.
- language/ru-RU/ru-RU.com_mycomponents.ini языковой файл для frontend части сайта.
- language/ru-RU/ru-RU.com_mycomponents.sys.ini языковой файл для части меню административной части.
- models/index.html
- models/mycomponents.php модель для части сайта через которую мы будем тянуть данные из mysql.
- views/index.html
- views/mycomponents/index.html
- views/mycomponents/view.html.php это наш вид через него мы будем представлять данные.
- views/mycomponents/tmpl/index.html
- views/mycomponents/tmpl/default.php этот файл называют шаблоном, через него выводятся все данные, это разметка вашего компонента, вы указываете все переменные которые вам нужны.
- views/mycomponents/tmpl/default.xml этот файл нужен для создания ссылки на компонент через административную часть. В нём могут быть разные параметры, выбор на какую часть страницы ссылаться если их у вас много.
Файлы для административной части
- У нас уже есть папка com_mycomponent, и теперь в неё мы поместим паку admin, а в ней файлы.
- index.html защита от прямого обращения к файлу.
- controller.php контроллер.
- mycomponents.php это точка входа в компонент.
- controllers/index.html
- controllers/mycomponent.php контроллер для выполнения задач пользователя.
- controllers/mycomponents.php
- helpers/index.html
- helpers/mycomponents.php этот файл нужен для отображения навигации в компоненте, нужная вещь если у вас много страниц.
- language/ru-RU/ru-RU.com_mycomponents.ini языковой файл административной части.
- language/ru-RU/ru-RU.com_mycomponents.sys.ini это языковой файл системный, для выпадающего меню в joomla.
- models/index.html
- models/mycomponent.php модель для работы с базой данных, редактирования данных.
- models/mycomponents.php вывод данных из модели, сортировка.
- models/fields/index.html
- models/fields/mycomponent.php нужен для создание своих собственных типов полей.
- models/forms/index.html
- models/forms/mycomponent.xml нужен для хранения форм, вместо обычного вывода данных в шаблоне используется xml файл, с одной стороны код можно отделить с другой не привычно выводить данные.
- sql/index.html
- sql/install.sql файл инсталяции базы данных.
- tables/index.html
- tables/mycomponent.php класс JTable является абстрактным классом, от которого можно получить производные классы для работы с конкретными таблицами. Для его использования нужно просто создать класс, расширяющий класс JTable, добавить поля вашей базы данных как свойства, и переназначить конструктор для указания имени таблицы и первичного ключа.
- views/index.html
- views/mycomponent/index.html
- views/mycomponent/view.html.php это вид через который мы будем принимать данные из модели.
- views/mycomponent/tmpl/index.html
- views/mycomponent/tmpl/edit.php файл редактирования данных.
- views/mycomponents/index.html
- views/mycomponents/view.html.php этот вид так же принимает данные из модели
- views/mycomponents/tmpl/index.html
- views/mycomponents/tmpl/default.php файл вывода данных.