- •Что в этой книге
- •Настройки против Расширений
- •Как расширить Joomla!
- •Компоненты (Components)
- •Модули (Modules)
- •Плагины (Plug-Ins)
- •Обзор тем
- •Создание пи (Toolbars) и Списков
- •Поддержание стиля и исключение повторений кода используя html функции
- •Доступ к бд и управление записями
- •Безопасность и предпочтительный способ получения переменных запроса
- •Меню управления
- •Управления логикой работы внутри Компонента
- •Конфигурация посредством xml-параметров
- •Упаковка и распространение
- •Наш Проект для примера
- •Приступая к разработке Компонента
- •Структура Компонента Joomla!
- •Запуск Компонента
- •Разделение на иа и ип в Joomla
- •Регистрация Компонента в бд
- •Создание пи
- •Доступные кнопки пи
- •Создание таблицы бд
- •Создание класса Table
- •Создание формы Обзора
- •Обработка данных
- •Создание Списка
- •Редактирование записей
- •Удаление записей
- •Разработка ип
- •Листинг Обзоров
- •Отображение Обзора
- •Генерация дружественных для поисковиков ссылок
- •Создание url сегментов
- •Парсинг url сегментов
- •Добавление комментариев
- •Отображение комментариев
- •Разработка Модуля
- •Регистрация Модуля в бд
- •Создание и настройка базового Модуля
- •Воспользуемся некоторыми помощниками (class Helper)
- •Пробуем различные стили
- •Попробуем смешать
- •Расширяем проект
- •Модель, Вид, Контроллер: Почему?
- •Построение Модели данных
- •Модель Все Обзоры
- •Модель одиночного Обзора
- •Миграция на Виды
- •Переключения посредством Контроллеров (Controllers)
- •Обновление связей и маршрутов
- •Реорганизация кода иа
- •Управление публикацией Обзоров
- •Добавление постраничной навигации
- •Управление Коментариями
- •Дополнительные пи
- •За кулисами: Плагины (Plug-Ins)
- •Запросы к бд
- •Плагин ссылка
- •Плагин справочной информации
- •Поиск Обзоров
- •Параметры
- •Добавление параметров к расширениям
- •Параметры для Модулей
- •Параметры для Плагинов
- •Параметры для Компонентов
- •Упаковываем все вместе
- •Список всех файлов
- •Упаковка Модуля
- •Упаковка Плагина
- •Упаковка Компонента
- •Включение sql-запросов
- •Создание пунктов меню иа
- •Дополнительные сценарии установки
- •Распространение
- •Содержание
Дополнительные пи
Если вы попытаетесь использовать любой из ПИ на любом из экранов с комментариями в ИА, вы не получите ожидаемые результаты. Это потому, что кнопки по-прежнему указывает на задачи для Обзоров. Чтобы это исправить, нам необходимо будет создать новые панели инструментов для комментариев. Откроем /administrator/components/com_reviews/toolbar.reviews.html.php и добавим класс:
class TOOLBAR_reviews_comments
{
function _EDIT()
{
JToolBarHelper::save('saveComment');
JToolBarHelper::cancel('comments');
}
function _DEFAULT()
{
JToolBarHelper::title( JText::_( 'Comments' ), 'generic.png' );
JToolBarHelper::editList('editComment');
JToolBarHelper::deleteList('Are you sure you want to remove
these comments?', 'removeComment');
}
}
Первый параметр JToolBarHelper функций save(), cancel() и editList() отменяет задачи по умолчанию, что позволяет нам устанавливать их по нашему усмотрению. Вызов title() позволяет использовать левую часть меню для определения экрана, как мы это делали с ПИ управления Обзорами. [Как мудрено: просто добавляется иконка. прим.переводчика]. Наконец, deleteList() принимает сообщение для подтверждения действия, в качестве первого параметра и требуемой задачи в качестве второго. На экране появится сообщение для подтверждения действия, если установлен чекбокс разрешающий спрашивать подтверждение пользователя, прежде чем приступить к удалению задачи.
Для отображения этих панелей инструментов, мы должны изменить switch() в toolbars.reviews.php, который был создан в главе 2. Дополнительный код выделен ниже:
switch($task)
{
case 'edit':
case 'add':
TOOLBAR_reviews::_NEW();
break;
case 'comments':
case 'saveComment':
case 'removeComment':
TOOLBAR_reviews_comments::_DEFAULT();
break;
case 'editComment':
TOOLBAR_reviews_comments::_EDIT();
break;
default:
TOOLBAR_reviews::_DEFAULT();
break;
}
Теперь вы должны увидеть такие ПИ. Они должны работать только на комментарии и не должны мешать функциональности управления Обзорами
Резюме
Начав с простого Компонента мы создали целое программное обеспечение, которое может быть легко расширено и обновлено в будущем. Теперь у нас есть Модели данных, которые представляют всю информацию что, мы показываем. Дополнительные Виды позволяют нашим администраторам по-разному выводить ссылки на Обзоры. Мы также получили больший контроль над публикацией [в смысле управлением Вкл/Выкл для статей. прим.переводчика] и комментариями, что будет иметь важное значение, так как популярность нашего сайта растет
За кулисами: Плагины (Plug-Ins)
Пока что по нашим Обзорам ресторанов относительно легко перемещаться и сайт тоже является дружественным к пользователю. Однако наши критики хотят, чтобы мы сделали для них несколько простых вещей. Периодически у нас может появляться желание создавать тематические статьи для сборников, таких как Late Night Dining Highlights или An All Asian Appetite. Мы хотим сделать так, чтобы критики как можно проще могли ссылаться на существующие Обзоры в статьях, а также сделать так, чтобы общий поиск по сайту учитывал и Обзоры.
Эти новые возможности можно сделать с помощью Плагинов. Joomla! предоставляет Плагины как способ внедрения [отработки, срабатывания. прим.переводчика] небольших кусков кода при наступлении определенных событий. Среди других задач, Плагины также могут быть использованы для запуска HTML-редакторов, производить поиск, форматировать контент и создавать логи пользователей в нескольких системах одновременно. Плагины могут взаимодействовать с Компонентами и Модулями без изменения их исходного кода. При написании Плагинов мы будем рассматривать такие темы:
-
Запросы к базе данных
-
Простой Плагин-ссылка
-
Информационное окно
-
Поиск Обзоров