- •Что в этой книге
- •Настройки против Расширений
- •Как расширить Joomla!
- •Компоненты (Components)
- •Модули (Modules)
- •Плагины (Plug-Ins)
- •Обзор тем
- •Создание пи (Toolbars) и Списков
- •Поддержание стиля и исключение повторений кода используя html функции
- •Доступ к бд и управление записями
- •Безопасность и предпочтительный способ получения переменных запроса
- •Меню управления
- •Управления логикой работы внутри Компонента
- •Конфигурация посредством xml-параметров
- •Упаковка и распространение
- •Наш Проект для примера
- •Приступая к разработке Компонента
- •Структура Компонента Joomla!
- •Запуск Компонента
- •Разделение на иа и ип в Joomla
- •Регистрация Компонента в бд
- •Создание пи
- •Доступные кнопки пи
- •Создание таблицы бд
- •Создание класса Table
- •Создание формы Обзора
- •Обработка данных
- •Создание Списка
- •Редактирование записей
- •Удаление записей
- •Разработка ип
- •Листинг Обзоров
- •Отображение Обзора
- •Генерация дружественных для поисковиков ссылок
- •Создание url сегментов
- •Парсинг url сегментов
- •Добавление комментариев
- •Отображение комментариев
- •Разработка Модуля
- •Регистрация Модуля в бд
- •Создание и настройка базового Модуля
- •Воспользуемся некоторыми помощниками (class Helper)
- •Пробуем различные стили
- •Попробуем смешать
- •Расширяем проект
- •Модель, Вид, Контроллер: Почему?
- •Построение Модели данных
- •Модель Все Обзоры
- •Модель одиночного Обзора
- •Миграция на Виды
- •Переключения посредством Контроллеров (Controllers)
- •Обновление связей и маршрутов
- •Реорганизация кода иа
- •Управление публикацией Обзоров
- •Добавление постраничной навигации
- •Управление Коментариями
- •Дополнительные пи
- •За кулисами: Плагины (Plug-Ins)
- •Запросы к бд
- •Плагин ссылка
- •Плагин справочной информации
- •Поиск Обзоров
- •Параметры
- •Добавление параметров к расширениям
- •Параметры для Модулей
- •Параметры для Плагинов
- •Параметры для Компонентов
- •Упаковываем все вместе
- •Список всех файлов
- •Упаковка Модуля
- •Упаковка Плагина
- •Упаковка Компонента
- •Включение sql-запросов
- •Создание пунктов меню иа
- •Дополнительные сценарии установки
- •Распространение
- •Содержание
Отображение комментариев
После сохранения файлов кода, вы сможете заполнить форму и вернуться к просмотру. Однако, ничего не произойдет, так как у нас нет кода для отображения комментариев. На других сайтах, вы часто видели, что комментарии непосредственно следуют за содержанием, а за ними также следует форма для добавления комментариев. Мы будем следовать этому стилю. Добавьте следующий выделенный код в файл reviews.php, который будет получать все комментарии из базы данных и выводить каждый из них:
HTML_reviews::showReview($row, $option);
$db =& JFactory::getDBO();
$db->setQuery("SELECT * FROM #__reviews_comments
WHERE review_id = '$id'");
$rows = $db->loadObjectList();
foreach($rows as $row)
{
HTML_reviews::showComment($row);
}
$user =& JFactory::getUser();
Также добавим соответствующую функцию в reviews.html.php, которая выводит один комментарий:
function showComment($row)
{
?>
<br /><br />
<p><strong><?php echo $row->full_name;
?></strong> <em><?php
echo JHTML::Date($row->comment_date);
?></em></p>
<p><?php echo $row->comment_text; ?></p>
<?php
}
После того как вы добавили один комментарий или два, обновите страницу, и вы увидите примерно такой экран:
Резюме
Наш успешно сайт развивается. Наши рецензенты удовлетворены, и они несколько возбуждены от появившейся возможности публиковать Обзоры. Мы также добавили некоторое взаимодействие с нашими посетителями, благодаря чему они могут согласиться или не согласиться с рецензентами и чувствовать себя частью сайта. Ссылки на Обзоры теперь более читаемы и готовы для сканирования поисковыми системами.
Созданный интерфейс является отправной точкой для добавления еще больших возможностей, позволяющих сделать сайт более заманчивым
Разработка Модуля
Теперь у нас есть эффективная система управления и принятия Обзоров в комментариях.
Тем не менее, посетители должны зайти в Компонент, чтобы увидеть Обзоры. Главная страница нашего сайта, возможно, должна содержать несколько вводных статей, но было бы неплохо, если бы мы могли взять содержимое прямо из Обзоров и отображать их там же.
Этому могут помочь Модули. Вы можете использовать их для загрузки и отображения данных практически в любом месте на странице. В этой главе мы рассмотрим разработку Модулей в таких разделах:
-
Регистрация Модуля в БД
-
Получение и установка параметров
-
Централизация доступа к данным и вывод, используя вспомогательные классы
-
Выбор вариантов отображения использованием стилей
-
Отображение последних Обзоров
-
Вывод случайных Обзоров
Регистрация Модуля в бд
Как и Компонент, мы должны зарегистрировать Модуль в БД, чтобы его можно было эффективно использовать в ИА. Запись в таблице jos_modules будет заботиться об этом. Откройте консоль БД и введите следующий запрос
INSERT INTO jos_modules (title, ordering,
position, published, module, showtitle, params)
VALUES ('Restaurant Reviews', 1, 'left', 1,
'mod_reviews', 1, 'style=simple\nitems=3\nrandom=1');
Если вы используете PhpMyAdmin, заполните поля как показано на следующем экране:
Если вы обновите ИА сразу после внесения записи в jos_modules, вы заметите, что Модуль не появляется, хотя столбец published установлен в 1. Чтобы исправить это, перейдите на Extensions/Module Manager в ИА и нажмите на ссылку Restaurants Reviews. В Menu Assignment, выберите All и нажмите кнопку Save
В ИП, левая часть вашей главной страницы должен выглядеть так: