CMS Joomla!
ний принято использовать надстройки CMS, а не функции
непосредственного обращения к БД.
При использовании встроенного механизма Joomla! (класс $database) ваши
модули станут более универсальными, а их код будет более простым. Вам
больше не нужно заниматься установлением подключения к серверу БД,
вычислять префикс таблиц и т. д. Всей грязной работой занимается класс
$database. Вам нужно лишь передать запрос к БД, получить и обработать
ответ.
При формировании запросов нужно использовать макрос # (решетка и два
подчеркивания), заменяющий префикс таблиц.
Вы можете использовать следующие методы класса $database:
? setQuery — используется для установки запроса к БД; помимо установки
самого запроса, данный метод занимается заменой префикса #
реальным префиксом таблиц, указанным в файле конфигурации. Данный
метод только устанавливает запрос, но не передает его серверу БД!;
? query— данный метод нужно использовать для запросов, которые не
возвращают никаких данных, например для удаления строк таблицы;
? loadObjectList— позволяет сделать выборку массива объектов-
потомков stdciass с именами, совпадающими с именами столбцов в
таблице;
? loadResuitArray — загружает массив результатов;
? loadResuit — загрузка одного поля результата, т. е. когда будет только
один результат.
Рассмотрим примеры использования данного класса. Получим список
пользователей (содержимое таблицы Susers):
$database->setQuery(«SELECT * FROM # users»);
$result_list = $database->loadObjectList();
Список пользователей будет помещен в массив Sresultlist. Вывести имена
всех пользователей можно с помощью цикла:
foreach($result_list as $user)
echo $user->name;
Для запросов, не возвращающих никакого результата (например, при
удалении и вставке записей), можно использовать метод query:
$database->setQuery(«DELETE FROM # table WHERE id>2″);
$database->query();
Глава 3. Расширения Joomla!
59
I/ Просмотреть результат выполнения (успешно или нет) запроса
// можно так:
echo $database->stderr() ;
При вставке записей в таблицу с полем типа AUTCMNCREMENT вы можете
получить идентификатор новой записи так:
echo $database->insertid();
3.3.3. Создание простого расширения
Сейчас мы создадим простой компонент без административной части.
Создайте каталог cornjny и поместите в него файл my.xml (листинг 3.3).
my
H
www.dkws.org.ua
l.0
Moi* первый KOMnoHeHT
my. php
Файл my.php, описанный в секции , будет выглядеть, как показано в
листинге 3.4.
echo «Мой первый компонент»;
?>
Создайте архив с именем my.zip, включив в него файлы my.xml и my.php.
Установите компонент, как было показано ранее (рис. 3.11).
60
Часть I. CMS Joomla!
Рис. 3.11. Компонент успешно установлен
Обратиться к компоненту можно так:
http://caftT/index.php?option=com_my
Примечание
Архив my.zip вы найдете в каталоге Glava_3\components компакт-диска.
Для Joomla! разработано очень много различных расширений, поэтому
создавать свои собственные расширения вам вряд ли придется. Дополнительную
информацию о создании расширений вы можете найти по адресу:
Ьир://]оот1а-с1ос8.ги/Программирование_для_Лоот1а
В табл. 3.1 приведено описание компонентов, содержащихся в каталоге
Glava_3\components, а в табл. 3.2 — модулей из каталога Glava_3\modules.
Таблица 3.1. Описание компонентов, прилагающихся на компакт-диске
Компонент
com_datsogallery_1.3.7_stable.zip
comj pack_1.0.4-a2_RE.zip
JOOMLA_com_easybook_1.1_
stable_easy-joomla.zip
comjce_110.zip
Описание
Неплохая фотогалерея
Полностью автоматизированное средство
для создания резервной копии сайта (базы
данных и всех файлов)
Гостевая книга
Менеджер картинок (для панели
управления)
Глава 3. Расширения Joomla!
61
Таблица 3.1 (окончание)
Компонент
Каталог shop
my.zip
com_dbadmin.zip
Описание
Набор электронных магазинов (вместе с
документацией и русификаторами) для
Joomla!
Компонент, разработанный в главе 3
Компонент для смены префикса таблиц
Joomla!
Таблица 3.2.
5th Фев 2011
|
Теги:
|