Структура нашего компонента. Ниже список файлов которые содержит наш компонент. Посмотрите структуру, какой файл для чего используется, а в конце скачайте заготовку. Посмотрите внимательно на структуру и её описание.

Для успешного усвоения материала, не переименовывайте компонент, а сделайте именно так как написано в уроке. Так вы быстрее поймёте материал и быстрее разберётесь в структуре, а иначе будет путаница, проверенно на себе!

Подобная структура используется во всех компонентах joomla.

Файлы для части сайта

  1. Создадим корневую папку com_mycomponents, а в ней папку site и поместим в неё следующие файлы и папки. (mycomponents) так назовём наш компонент.
  2. index.html защита от прямого обращения к файлу.
  3. controller.php контроллер.
  4. mycomponents.php это точка входа в компонент.
  5. css/index.html
  6. css/mycomponent.css каскадные таблицы стилей для сайта.
  7. language/ru-RU/ru-RU.com_mycomponents.ini языковой файл для frontend части сайта.
  8. language/ru-RU/ru-RU.com_mycomponents.sys.ini языковой файл для части меню административной части.
  9. models/index.html
  10. models/mycomponents.php модель для части сайта через которую мы будем тянуть данные из mysql.
  11. views/index.html
  12. views/mycomponents/index.html
  13. views/mycomponents/view.html.php это наш вид через него мы будем представлять данные.
  14. views/mycomponents/tmpl/index.html
  15. views/mycomponents/tmpl/default.php этот файл называют шаблоном, через него выводятся все данные, это разметка вашего компонента, вы указываете все переменные которые вам нужны.
  16. views/mycomponents/tmpl/default.xml этот файл нужен для создания ссылки на компонент через административную часть. В нём могут быть разные параметры, выбор на какую часть страницы ссылаться если их у вас много.

Файлы для административной части

  1. У нас уже есть папка com_mycomponent, и теперь в неё мы поместим паку admin, а в ней файлы.
  2. index.html защита от прямого обращения к файлу.
  3. controller.php контроллер.
  4. mycomponents.php это точка входа в компонент.
  5. controllers/index.html
  6. controllers/mycomponent.php контроллер для выполнения задач пользователя.
  7. controllers/mycomponents.php
  8. helpers/index.html
  9. helpers/mycomponents.php этот файл нужен для отображения навигации в компоненте, нужная вещь если у вас много страниц.
  10. language/ru-RU/ru-RU.com_mycomponents.ini языковой файл административной части.
  11. language/ru-RU/ru-RU.com_mycomponents.sys.ini это языковой файл системный, для выпадающего меню в joomla.
  12. models/index.html
  13. models/mycomponent.php модель для работы с базой данных, редактирования данных.
  14. models/mycomponents.php вывод данных из модели, сортировка.
  15. models/fields/index.html
  16. models/fields/mycomponent.php нужен для создание своих собственных типов полей.
  17. models/forms/index.html
  18. models/forms/mycomponent.xml нужен для хранения форм, вместо обычного вывода данных в шаблоне используется xml файл, с одной стороны код можно отделить с другой не привычно выводить данные.
  19. sql/index.html
  20. sql/install.sql файл инсталяции базы данных.
  21. tables/index.html
  22. tables/mycomponent.php класс JTable является абстрактным классом, от которого можно получить производные классы для работы с конкретными таблицами. Для его использования нужно просто создать класс, расширяющий класс JTable, добавить поля вашей базы данных как свойства, и переназначить конструктор для указания имени таблицы и первичного ключа.
  23. views/index.html
  24. views/mycomponent/index.html
  25. views/mycomponent/view.html.php это вид через который мы будем принимать данные из модели.
  26. views/mycomponent/tmpl/index.html
  27. views/mycomponent/tmpl/edit.php файл редактирования данных.
  28. views/mycomponents/index.html
  29. views/mycomponents/view.html.php этот вид так же принимает данные из модели
  30. views/mycomponents/tmpl/index.html
  31. views/mycomponents/tmpl/default.php файл вывода данных.

Пример.