Создание компонента joomla 1.7
Адрес программы: http://www.mmleoni.net/joomla-component-builder
Тем, кто пишет свои компоненты для joomla, посвящается..... Большая часть работы при создании компонента по патерну MVC уходит на создание файлов с представлением сущностей из базы данных. А потом уже прикручивание бизнес логики к компоненту. Недавно в интернете нашел программу, которая автоматически создает все файлы CRUD в админке и все файлы представления на лицевой части буквально за 10 минут. Это на 70% экономит время создания компонента. По сути остается заняться только бизнес логикой ведь вся грязная, монотонная работа уже сделана.
Создаем 2 базы данных на локальном сервере и устанавливаем тестовый сайт на joomla 1.7. Вторая база данных для создания своих компонентов.
Из этого урока вы узнаете из чего состоит компонент в joomla.
Основные правила названий файлов и классов в joomla.
Шестой урок по программированию в joomla из которого вы узнаете какие параметры передаются в url.
Давайте рассмотрим возможности кеширования Joomla.
1. Включить кеширование в административной части в глобальных настройках, тогда кешироваться будут все компоненты и модули. Но при таком способе все равно какието части останутся не закешироваными. Блоки html возвращаемые компонентами и модулями в отдельных файлах будут храниться в папке cash.
2. Включить плагин системного кеша. Он будет целиком сохранять страницы в папку cash.
3. Если Вы написали свой компонент, что бы его закешировать в параметрах метода display нужно передать true. В главном контролере, который в вышем компоненте должно быть написано нечто подобное:
Для сложной логики Вам понадобится разрабатывать массу нестандартных функций. Как это делается в Joomla 1.7.
Создав компонент у нас обязательно появится желание привязать его к какому-нибудь пункту меню. Для этого нам понадобиться создать xml файл в папке /components/com_mycomponent/views/tmpl/default.xml название файла должно соответствовать шаблону представления (layout). По умолчанию это default.php тогда default.xml. В нем минимально должна быть такая запись:

Если Вы хотите написать компонент, который будет использоваться на разных сайтах в разных условиях имеет смысл позволить пользователям настраивать компонент под конкретный сайт. Сделать это можно с помощью настроек вашего компонента.
Первым делом давайте в административной части компонента выведем выпадающий список, с категориями (в моем случае). Для этого получаем категории из базы данных и формируем из них элементы option, я все это делал в файле шаблона administrator/components/com_free/views/freelist/tmpl/default.php: