- •Что в этой книге
- •Настройки против Расширений
- •Как расширить Joomla!
- •Компоненты (Components)
- •Модули (Modules)
- •Плагины (Plug-Ins)
- •Обзор тем
- •Создание пи (Toolbars) и Списков
- •Поддержание стиля и исключение повторений кода используя html функции
- •Доступ к бд и управление записями
- •Безопасность и предпочтительный способ получения переменных запроса
- •Меню управления
- •Управления логикой работы внутри Компонента
- •Конфигурация посредством xml-параметров
- •Упаковка и распространение
- •Наш Проект для примера
- •Приступая к разработке Компонента
- •Структура Компонента Joomla!
- •Запуск Компонента
- •Разделение на иа и ип в Joomla
- •Регистрация Компонента в бд
- •Создание пи
- •Доступные кнопки пи
- •Создание таблицы бд
- •Создание класса Table
- •Создание формы Обзора
- •Обработка данных
- •Создание Списка
- •Редактирование записей
- •Удаление записей
- •Разработка ип
- •Листинг Обзоров
- •Отображение Обзора
- •Генерация дружественных для поисковиков ссылок
- •Создание url сегментов
- •Парсинг url сегментов
- •Добавление комментариев
- •Отображение комментариев
- •Разработка Модуля
- •Регистрация Модуля в бд
- •Создание и настройка базового Модуля
- •Воспользуемся некоторыми помощниками (class Helper)
- •Пробуем различные стили
- •Попробуем смешать
- •Расширяем проект
- •Модель, Вид, Контроллер: Почему?
- •Построение Модели данных
- •Модель Все Обзоры
- •Модель одиночного Обзора
- •Миграция на Виды
- •Переключения посредством Контроллеров (Controllers)
- •Обновление связей и маршрутов
- •Реорганизация кода иа
- •Управление публикацией Обзоров
- •Добавление постраничной навигации
- •Управление Коментариями
- •Дополнительные пи
- •За кулисами: Плагины (Plug-Ins)
- •Запросы к бд
- •Плагин ссылка
- •Плагин справочной информации
- •Поиск Обзоров
- •Параметры
- •Добавление параметров к расширениям
- •Параметры для Модулей
- •Параметры для Плагинов
- •Параметры для Компонентов
- •Упаковываем все вместе
- •Список всех файлов
- •Упаковка Модуля
- •Упаковка Плагина
- •Упаковка Компонента
- •Включение sql-запросов
- •Создание пунктов меню иа
- •Дополнительные сценарии установки
- •Распространение
- •Содержание
Learning Joomla! 1.5
Extension Development
Creating Modules, Components, and Plug-Ins
with PHP
A practical tutorial for creating your first Joomla! 1.5
extensions with PHP
Joseph LeBlanc
Самоучитель по разработке
расширений для Joomla! 1.5
Создание Модулей, Компонентов и Плагинов с использованием PHP
Практическое руководство по созданию вашего первого расширения для Joomla! 1.5 с использованием PHP
Что в этой книге
В Главе 1 проводится Обзор того, как работает Joomla!. Также описывается проект используемый в книге в качестве примера. Описываются три типа расширений (Компоненты, Модули и Плагины), их совместная работа и взаимодействие.
В Главе 2 начинается создание Компонента, используемого в проекте. Делаем первоначальные записи в базе данных (БД) и панели инструментов (ПИ) для административной части (бекэнда, БЕ). Также показана общая структура папок и файлов.
В Главе 3 описывается создания интерфейса административной части (ИА) для создания, редактирования и удаления записей в проекте. Вводятся классы таблиц БД, а также показывается как в проекте используется HTML и сочетание с другими Joomla! расширениями.
В Главе 4 создается интерфейс пользователя (ИП) (фронтенд) для просмотра записей. Кроме того, показан код для генерации и интерпретации оптимизированных для поисковых систем ссылок. Проект также несколько расширен возможностью добавления комментариев.
В Главе 5 представлен Модуль, который используется для вывода списка на каждой странице сайта. Модуль использует стили, где одни и те же данные могут быть по-разному отформатированы в зависимости от вызова. Часть кода также выделен во вспомогательный класс, таким образом, основной код Модуля остается простым.
В Главе 6 переписывается Компонент, разработанный в 2, 3 и 4 главах, для соответствия архитектуре Модель, Вид (Представление), Контроллер (MVC). В дополнение к существующему интерфейсу водится контроль за публикацией записей для удаления оскорбительных комментариев. Добавлены дополнительные ПИ и изменен код ссылок, оптимизированных для поисковых систем.
В Главе 7 создается три Плагина. Первый - находит имена записей в базе данных и преобразует их в ссылки на эти записи. Второй Плагин отображает краткое описание записи, когда определенный код добавляется к содержанию статей. Наконец, еще один Плагин разработан таким образом, что записи участвуют в общем поиске Joomla!.
Глава 8 добавляет параметры конфигурации Компонентов, Модулей и Плагинов. Это осуществляется посредством XML и создается предсказуемый ИА для настройки параметров. Получение значений этих параметров стандартизировано через встроенные функции.
Глава 9 расширяет XML-файлы, используемые для параметров и добавляет список всех файлов и расширений. После этого создается ZIP-архив и проект готов для установки на другую копию Joomla! без вмешательства программиста. Выборочная установка скриптов и SQL кода, также добавляются Компоненты.
Код тестировался на Joomla 1.5 beta 2.
Примеры кода в книге
Код, используемый в книге доступен по адресу: http://www.packtpub.com/support
Расширения Joomla!
Разработка: Обзор Ресторанов
Зачем расширять Joomla!
Joomla! предназначена не только для обработки содержания статьи, но и позволяет встраивать целый ряд сложных приложений. Магазины, форумы, социальные сети и пр.- все это примеры расширений, написанные разработчиками для Joomla!.
Все это может работать на сайте под управлением Joomla!, используя только одну базу данных, шаблон, а также периодически обновляемое ядро.
Создаваемые Вами расширения Joomla! унаследует внешний вид и стиль всего сайта. Любой тип программы, которая может быть написана на PHP потенциально может быть расширением. Ваши расширения могут быть мобильны. При правильном программировании, вы легко сможете установить код на другую копию Joomla! без ввода реквизитов базы данных и другие основных сведений о конфигурации. Кроме того, вы сможете распространять расширения так, что они могут быть использованы потребителем без каких-либо программ или дополнительных знаний.