Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Samouchitel_po_razrabotke_rasshireny_dlya_Jooml....docx
Скачиваний:
2
Добавлен:
10.11.2018
Размер:
2.53 Mб
Скачать

Упаковка и распространение

После того как код создан, он легко упаковывается для использования другими.

Список всех файлов добавляется в файл XML. Туда же включаются любые необходимые запросы для создания таблиц. Все файлы сжимаются в архив. Теперь Расширение готово быть установлено на любой сайт с Joomla!

Наш Проект для примера

Мы будем писать расширение Обзора ресторанов (restaurant reviews): создание, поиск, поддержка и перекрестные ссылки. Компонент будет обрабатывать общие данные просматривая все Обзоры, такие как диапазон цен, бронирование, тип кухни и местоположение. Ваши посетители будут иметь возможность поиска и сортировки Обзоров, добавлять свои собственные критерии, чтобы выбрать рестораны на вечер. Некоторые Модули будут показывать новые Обзоры, обращая внимание на частых гостей. Наконец, один из Плагинов будет вставлять части Обзоров в тематические статьи, а другой будет интегрировать их в поиск

Для подготовки к этому проекту, установите новую копию Joomla! 1,5 на веб-сервер с PHP и базой данных (желательно MySQL). Если вы предпочитаете для создания проекта использовать только компьютер и не имеете локального веб-сервера, вероятно, вам будет проще загрузить и установить предварительно настроенный пакет, такой как XAMPP (http://www.apachefriends.org). Таким образом, вы сможете работать со всеми файлами в локальной файловой системе.

Резюме

Joomla! может быть расширена за счет Компонентов, Модулей и Плагинов. Это позволяет добавлять функциональные возможности на сайт с Joomla! без внедрения в код ядра. Joomla! может поддерживаться и обновляться, не нарушая пользовательский код

Приступая к разработке Компонента

Прежде чем начать, необходимо создать несколько файлов и папок, а выполнить запрос. Это не только позволит вам создавать Компоненты, но также поможет проверить различные установки без обширных настроек. Вы также получите краткий Обзор способов организации Компонентов и доступа через Joomla!. Наконец, необходимо добавить несколько панелей инструментов, которые работают так же, как в других Компонентах

Структура Компонента Joomla!

Joomla! использует конкретную схему именования, которая используется во всех Компонентах. Каждый Компонент в системе имеет уникальное имя без пробелов. Код состоит из двух папок, каждая использует в названии префикс com_. Компонент в этой книге будет называться reviews. Таким образом, вам придется создать две папки с названием com_reviews:

  • Одну создайте в папке components для ИП.

  • Вторую - в папке administrator/components для ИА.

Когда Компонент загружается ИП, Joomla! будет искать файл с уникальным именем Компонента и расширением .php. В папке components/com_reviews создайте файл reviews.php.

Кроме того, при загрузке в ИА предполагается наличие файлов начинающихся на admin. далее следует имя Компонента с расширением .php. Добавьте файл admin.reviews.php в administrator/components/com_reviews. Оставьте оба файла пока пустыми

Запуск Компонента

Все запросы в ИП Joomla! проходят через index.php в корневом каталоге. Для загрузки Компонента, устанавливается GET переменная option в URL строке. Если URL для доступа к сайту будет http://localhost/joomla/index.php, то Компонент в ИП можно загрузить так:

http://localhost/joomla/index.php?option=com_reviews.

На данный момент, экран должен быть пуст, кроме общих элементов шаблонов и Модулей. Чтобы сделать наш Компонент более полезным, в reviews.php необходимо добавить следующий код и обновить браузер:

<?php

defined( '_JEXEC' ) or die( 'Restricted access' );

echo '<div class="componentheading">Restaurant Reviews</div>';

?>

Экран будет выглядеть следующим образом:

Возможно, Вам будет в новинку увидеть вызов defined() в начале файла. Это сделано для того, чтобы убедиться, что код вызывается через Joomla!, а не непосредственно из Компонента /com_reviews/reviews.php.

Joomla! автоматически настраивает среду для некоторой гарантии безопасности, что может быть полезно, если кто-то попытается исполнить код непосредственно для вашего Компонента. Для ИА, вставьте такой код в administrator/components/com_reviews/admin.reviews.php:

<?php

defined( '_JEXEC' ) or die( 'Restricted access' );

echo 'Restaurant Reviews';

?>

Набираем: http://localhost/joomla/administrator/index.php?option=com_reviews и сравниваем результат:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]