Чтение онлайн

на главную

Жанры

Разрботка расширений для CMS Joomla
Шрифт:

Глобальный объект JApplication позволяет работать с очередью сообщений, осуществлять перенаправление браузера, получать параметры конфигурации сайта, определять тип запущенного приложения Joomla.

Панели инструментов в бэкенде можно создавать с помощью класса JToolBarHelper, методы которого генерируют HTML-код для построения кнопок. Для отображения кнопок, которые часто используются в компонентах, существуют готовые методы этого класса. Можно также создать собственную кнопку.

Вопросы

Опишите

структуру фреймворка Joomla.

Что такое фронтенд и бэкенд?

Какие константы предопределены в Joomla?

Каким образом реализована поддержка мультиязыковых сайтов?

Для чего используется класс JFactory?

В чем преимущество использования методов класса JRequest?

Что такое очередь сообщений?

Для чего используется глобальный объект JApplication?

Каким образом создаются панели инструментов в бэкенде?

Упражнения

Адаптируйте код из раздела " Практика" для своего варианта (см. дополнительные материалы).

Работа с базой данных

Подробно рассмотрена работа с базой данных средствами Joomla. Рассмотрены понятия реального и символического префиксов, этапы выполнения запроса к базе данных и класс JTable.

Цель лекции:Изучить, как происходит работа с базой данных средствами Joomla.

Префикс таблиц базы данных

Префикс таблиц базы данных– это строка, которая присоединяется к названию каждой таблицы Joomla в базе данных. Префикс задается при установке Joomla. В старых версиях по умолчанию использовался префикс "jos_", однако это создавало потенциальную уязвимость сайта, т.к. хакеры знали название таблицы с паролями пользователей - "jos_users". Теперь префикс, предлагаемый при установке, генерируется случайным образом.

Использование префикса позволяет разместить в одной базе данных несколько установок Joomla.

Различают реальный и символический префиксы. Реальный префикс– это то конкретное сочетание символов, которое используется в названиях таблиц базы данных. Символический префикс– это сочетание "#__" (решетка и два знака подчеркивания), которое используется в запросах вместо реального префикса. При обработке запроса вместо символического префикса будет автоматически подставлен реальный. Например, при реальном префиксе "jos_" строка "#__mycomponent_mytable" превратится в "jos_mycomponent_mytable".

При разработке собственных расширений в SQL-запросах всегда указывается символический префикс, а не реальный, так как в других установках Joomla почти наверняка будут использоваться другие реальные префиксы.

Выполнение

запроса к базе данных

Чтобы выполнить запрос к базе данных Joomla, необходимо осуществить пять операций:

Получение ссылки на объект JDatabase.

Формирование запроса.

Задание запроса.

Выполнение запроса.

При необходимости - загрузка результата.

Получение ссылки на объект JDatabase

JDatabase– абстрактный класс, предоставляющий доступ к соединению с базой данных. Это соединение создается при инициализации приложения Joomla, а в коде своего расширения мы можем получить ссылку на него с помощью метода getDbo статического класса JFactory:

$db =& JFactory::getDbo;

Формирование SQL-запроса

В старых версиях Joomla запросы формулировались в виде строки:

$query = 'SELECT * FROM #__categories';

В Joomla 1.6 появился объект JDatabaseQuery, методы которого позволяют упростить создание сложных SQL-запросов. Названия этих методов практически совпадают с ключевыми словами языка SQL: select, from, where, having, join и т.д. Использование объекта JDatabaseQuery иллюстрирует следующий пример:

$db = JFactory::getDbo; $query = $db->getQuery(true); $query->select('id, name'); $query->from('#__users'); $query->order('name'); $query->where('username LIKE \'a%\''); $db->setQuery($query); echo $query->__toString;

В данном примере мы получаем из таблицы #__users отсортированный по алфавиту список id и имен пользователей, чьи логины начинаются на букву "a". Данный код выведет на экран следующий SQL-запрос:

SELECT id, name FROM #__users WHERE username LIKE 'a%' ORDER BY name

Как известно, употребляющиеся в запросе названия полей и таблиц рекомендуется заключать в ограничители, чтобы избежать совпадений с зарезервированными словами. Кроме того, строковые значения в запросах также берутся в кавычки. Методы nameQuote и Quote заключают, соответственно, названия и значения в правильные ограничители. Для MySQL это обратные апострофы (``) для названий и обычные апострофы ('') для значений.

Рассмотрим пример использования этих методов:

$query = 'SELECT * FROM '.$db->nameQuote('#__users').' WHERE '.$db->nameQuote('username').'='.$db->Quote('admin');

Для базы данных MySQL с префиксом таблиц jos_ переменная $query примет следующее значение:

SELECT * FROM `jos_users` WHERE `username`='admin';

Задание запроса

Чтобы задать SQL-запрос для последующего выполнения, используется метод:

JDatabase setQuery(string $query, string $offset=0, string $limit=0)

Поделиться:
Популярные книги

Машенька и опер Медведев

Рам Янка
1. Накосячившие опера
Любовные романы:
современные любовные романы
6.40
рейтинг книги
Машенька и опер Медведев

Волк 5: Лихие 90-е

Киров Никита
5. Волков
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волк 5: Лихие 90-е

Приручитель женщин-монстров. Том 4

Дорничев Дмитрий
4. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 4

Приручитель женщин-монстров. Том 2

Дорничев Дмитрий
2. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 2

Кодекс Охотника. Книга VIII

Винокуров Юрий
8. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга VIII

Бальмануг. (Не) Любовница 1

Лашина Полина
3. Мир Десяти
Фантастика:
юмористическое фэнтези
попаданцы
5.00
рейтинг книги
Бальмануг. (Не) Любовница 1

Курсант: Назад в СССР 10

Дамиров Рафаэль
10. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 10

Путь (2 книга - 6 книга)

Игнатов Михаил Павлович
Путь
Фантастика:
фэнтези
6.40
рейтинг книги
Путь (2 книга - 6 книга)

Live-rpg. эволюция-4

Кронос Александр
4. Эволюция. Live-RPG
Фантастика:
боевая фантастика
7.92
рейтинг книги
Live-rpg. эволюция-4

Адепт. Том второй. Каникулы

Бубела Олег Николаевич
7. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.05
рейтинг книги
Адепт. Том второй. Каникулы

Восход. Солнцев. Книга IV

Скабер Артемий
4. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга IV

Краш-тест для майора

Рам Янка
3. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
эро литература
6.25
рейтинг книги
Краш-тест для майора

Последний реанорец. Том I и Том II

Павлов Вел
1. Высшая Речь
Фантастика:
фэнтези
7.62
рейтинг книги
Последний реанорец. Том I и Том II

Измена. Право на семью

Арская Арина
Любовные романы:
современные любовные романы
5.20
рейтинг книги
Измена. Право на семью