- •Что в этой книге
- •Настройки против Расширений
- •Как расширить Joomla!
- •Компоненты (Components)
- •Модули (Modules)
- •Плагины (Plug-Ins)
- •Обзор тем
- •Создание пи (Toolbars) и Списков
- •Поддержание стиля и исключение повторений кода используя html функции
- •Доступ к бд и управление записями
- •Безопасность и предпочтительный способ получения переменных запроса
- •Меню управления
- •Управления логикой работы внутри Компонента
- •Конфигурация посредством xml-параметров
- •Упаковка и распространение
- •Наш Проект для примера
- •Приступая к разработке Компонента
- •Структура Компонента Joomla!
- •Запуск Компонента
- •Разделение на иа и ип в Joomla
- •Регистрация Компонента в бд
- •Создание пи
- •Доступные кнопки пи
- •Создание таблицы бд
- •Создание класса Table
- •Создание формы Обзора
- •Обработка данных
- •Создание Списка
- •Редактирование записей
- •Удаление записей
- •Разработка ип
- •Листинг Обзоров
- •Отображение Обзора
- •Генерация дружественных для поисковиков ссылок
- •Создание url сегментов
- •Парсинг url сегментов
- •Добавление комментариев
- •Отображение комментариев
- •Разработка Модуля
- •Регистрация Модуля в бд
- •Создание и настройка базового Модуля
- •Воспользуемся некоторыми помощниками (class Helper)
- •Пробуем различные стили
- •Попробуем смешать
- •Расширяем проект
- •Модель, Вид, Контроллер: Почему?
- •Построение Модели данных
- •Модель Все Обзоры
- •Модель одиночного Обзора
- •Миграция на Виды
- •Переключения посредством Контроллеров (Controllers)
- •Обновление связей и маршрутов
- •Реорганизация кода иа
- •Управление публикацией Обзоров
- •Добавление постраничной навигации
- •Управление Коментариями
- •Дополнительные пи
- •За кулисами: Плагины (Plug-Ins)
- •Запросы к бд
- •Плагин ссылка
- •Плагин справочной информации
- •Поиск Обзоров
- •Параметры
- •Добавление параметров к расширениям
- •Параметры для Модулей
- •Параметры для Плагинов
- •Параметры для Компонентов
- •Упаковываем все вместе
- •Список всех файлов
- •Упаковка Модуля
- •Упаковка Плагина
- •Упаковка Компонента
- •Включение sql-запросов
- •Создание пунктов меню иа
- •Дополнительные сценарии установки
- •Распространение
- •Содержание
Упаковываем все вместе
Наши критики ресторанов теперь вполне удовлетворены развитием сайта. Выполнено достаточно, чтобы рекомендовать его коллегам в других городах. Наш почтовый ящик завален письмами с просьбой создать подобный сайт.
Вместо того чтобы производить каждый отдельный веб-сайт, мы упакуем Модули, Компоненты и Плагины таким образом, что они могут быть проданы! Процесс упаковки будет охватывать следующие задачи:
-
Список всех файлов
-
Упаковка Компонента
-
Создание опций меню для ИА
-
Включение SQL запросов
-
Дополнительные сценарии установки
-
Распространение
Список всех файлов
Создание инсталляционных пакетов для наших расширений мы начнем с XML-файла, которые мы ранее использовали для хранения параметров конфигурации. Все три типа расширения требует список всех файлов в пакете. Инсталлятор не будет копировать файлы, которые не перечислены в файле XML.
Упаковка Модуля
Для нашего Модуля, откройте существующие mod_reviews.xml файл и добавьте следующий выделенный код:
<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5">
<name>Restaurant Reviews</name>
<author>Sumptuous Software</author>
<creationDate>January 2007</creationDate>
<copyright>(C) 2007</copyright>
<license>Commercial</license>
<authorEmail>support@packtpub.com</authorEmail>
<authorUrl>www.packtpub.com</authorUrl>
<version>1.0</version>
<description>A module for promoting restaurant
reviews.</description>
<files>
<filename module="mod_reviews">mod_reviews.php</filename>
<filename>helper.php</filename>
<filename>tmpl/_review.php</filename>
<filename>tmpl/bulleted.php</filename>
<filename>tmpl/default.php</filename>
</files>
<params>
<param name="random" type="radio" default="0"
label="Randomize" description="Show random reviews">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
<param name="@spacer" type="spacer" default=""
label="" description="" />
<param name="items" type="text" default="1"
label="Display #" description="Number of
reviews to display" />
<param name="style" type="list" default="default"
label="Display style" description="The style
to use for displaying the reviews.">
<option value="default">Flat</option>
<option value="bulleted">Bulleted</option>
</param>
</params>
</install>
Каждый файл, перечислен в элементе <filename> и все они заключены в элемент <files>. Для файла mod_reviews.php, в элемент <filename> добавляем параметр module = mod_reviews. Будет создан каталог mod_reviews в каталоге Модулей, а также наш Модуль будет зарегистрирован в базе данных. Таким образом, мы автоматизировали шаги, описанные при создании первого Модуля.
Упаковка Плагина
Корректировка XML-файл для Плагинов очень похожи.
Откроем /plugins/conent/reviews.xml и внесем следующие изменения:
<?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="plugin" group="content">
<name>Content - Restaurant Review Links</name>
<author>Sumptuous Software</author>
<creationDate>January 2007</creationDate>
<copyright>(C) 2007</copyright>
<license>Commercial</license>
<authorEmail>support@packtpub.com</authorEmail>
<authorUrl>www.packtpub.com</authorUrl>
<version>1.0</version>
<description>Searches for titles of restaurants in articles
and turns them into review links.</description>
<files>
<filename plugin="reviews">reviews.php</filename>
</files>
<params>
<param name="linkcode" type="textarea" default="" rows="5"
cols="40" label="Custom Link Code" description="By
using {link} and {title}, you can generate custom
HTML output that includes the URL and review title
respectively." />
</params>
</install>
На теге <install> мы добавим параметр group и установить значение его равным content. Это гарантирует, что Плагин добавляется в правильный каталог. Для единственного файла с кодом у нас есть параметр plugin с именем Плагина, которое используется в БД вместе с группой для его идентификации.
Процесс идентичен для Плагина reviewinfo:
<?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="plugin" group="content">
<name>Content - Review Information</name>
<author>Sumptuous Software</author>
<creationDate>January 2007</creationDate>
<copyright>(C) 2007</copyright>
<license>Commercial</license>
<authorEmail>support@packtpub.com</authorEmail>
<authorUrl>www.packtpub.com</authorUrl>
<version>1.0</version>
<description>Turns {reviewinfo Name of your restaurant} into a table
with the review's essential details.</description>
<files>
<filename plugin="reviewinfo">reviewinfo.php</filename>
</files>
<params>
<param name="address" type="radio" default="1"
label="Display Address?" description="Toggles the
display of the address in summaries.">
<option value="1">Yes</option>
<option value="0">No</option>
</param>
<param name="price_range" type="radio" default="1"
label="Display Price Range?" description="Toggles the
display of the price range in summaries.">
<option value="1">Yes</option>
<option value="0">No</option>
</param>
<param name="reservations" type="radio" default="1"
label="Display Reservations?" description="Toggles the
display of reservation policy in summaries.">
<option value="1">Yes</option>
<option value="0">No</option>
</param>
<param name="smoking" type="radio" default="1"
label="Display Smoking?" description="Toggles the
display of smoking policy in summaries.">
<option value="1">Yes</option>
<option value="0">No</option>
</param>
</params>
</install>
Изменения в файле XML для Плагина search аналогичны первым двум, кроме того, что здесь вы установите в <install> параметр group равным search. Обратите внимание, что мы используем то же имя для Плагина в группе search, что и в группе content [имеется в виду название файла. прим.переводчика]. Такое возможно благодаря способу написания XML файла
<?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="plugin" group="search">
<name>Search - Restaurant Reviews</name>
<author>Sumptuous Software</author>
<creationDate>January 2007</creationDate>
<copyright>(C) 2007</copyright>
<license>Commercial</license>
<authorEmail>support@packtpub.com</authorEmail>
<authorUrl>www.packtpub.com</authorUrl>
<version>1.0</version>
<description>Allows Searching of Restaurant Reviews</description>
<files>
<filename plugin="reviews">reviews.php</filename>
</files>
<params>
<param name="search_limit" type="text" size="5" default="50"
label="Search Limit" description="Number of Search items
to return"/>
</params>
</install>