Рекомендуем

Скидки до 30% на все темы и подписки... Никаких уловок или обмана Подписка на GavickPro включает в себя полный доступ к шаблонам для Joomla и WordPress, без каких-либо...

Далее...

Elegant Icon Font - 310 великолепных иконок... ElegantThemes создали поистине самый красивый, элегантный и полный набор иконок. Набор предлагается в виде веб шрифта,...

Далее...

JA Fubix адаптивный шаблон для Joomla... JA Fubix - апрельский шаблон от JoomlArt. Отлично подходящий для сайтов с тематикой спортивных новостей использующих...

Далее...

T3 Framework от JoomlArt О фреймворке Фреймворк T3 заслужено считается одним из самых популярных шаблонных фреймворков для Joomla. Все шаблоны...

Далее...

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

Далее...

  • Prev
  • Next

Разработка модулей в Joomla 2.5: Часть 6. Доступ к базе данных

6

Категории: Базы данных, Разработка модулей для Joomla

В предыдущих записях мы рассмотрели практически все аспекты создания модулей для Joomla. В последней части этого цикла мы рассмотрим работу с базой данных, вы узнаете: как получить доступ к базе данных, как выполнить запрос к БД из модуля.

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

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

Добавим в помощник helper.php функцию getCurrentUsers(), которая будет возвращать количество активных пользователей:

<?php 
/**
 * @package	Joomla.Tutorials
 * @subpackage	Module
 * @copyright	Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved.
 * @license	License GNU General Public License version 2 or later; see LICENSE.txt
 */
// No direct access to this file
defined('_JEXEC') or die;
class modHelloWorldHelper
{
	public static function getGreeting() {
		return "Message from the helper";
	}
	public static function getCurrentUsers() {
		$db = JFactory::getDBO();
		$db->setQuery($db->getQuery(true)
			->select("COUNT(*) as users")
			->from("#__session")
		);
		return $db->loadResult();
	}
}

Давайте разберемся, что же здесь происходит. В строке 16 мы получает объект базы данных, он нам потребуется для всех остальных операций с БД. С 17 по 20 строки происходит формирование запроса к базе данных. И в 21 строке мы выполняем запрос и получаем результат.

Остановимся подробнее на формировании запроса, при установке Joomla указывается префикс таблиц, когда мы формируем запрос, мы не знаем какой префикс был задан именно в этой инсталляции Joomla поэтому в названии таблицы ставиться префикс #__, Joomla сама подставит правильный префикс. Ну, а остальное, если вы знакомы с Active Records, довольно просто. Если же не знакомы, то мы обязательно вернемся к этому в следующих материалах.

Вносим изменения в файл шаблона вывода модуляtmpl/default.php:

<?php 
/**
 * @package	Joomla.Tutorials
 * @subpackage	Module
 * @copyright	Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved.
 * @license	License GNU General Public License version 2 or later; see LICENSE.txt
 */
// No direct access to this file
defined('_JEXEC') or die;
?>
<p><?php echo $params->get('greeting', JText::_('MOD_HELLOWORLD_GREETING_DEFAULT')); ?></p>
<p><?php echo modHelloWorldHelper::getGreeting(); ?></p>
<p>There are <?php echo modHelloWorldHelper::getCurrentUsers(); ?> user(s) logged in</p>

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

Скачать исходные тексты mod_helloworld-part06.zip

Предыдущая запись:

Следующая запись:


Комментариев 6 комментариев

Спасибо, очень интересно! Подскажи пожалуйста, как получить доступ к основной части вывода на странице, т.е. как создать свой пункт меню ???

Не совсем понятен ваш вопрос. Опишите подробнее ситуацию с которой вы столкнулись

Добрый день, спасибо за цикл статей…
Хотелось-бы увидеть продолжение.
Меня, в частности интересует ситуация когда из админки модуля необходимо вытащить не просто статические параметры, а к примеру, данные из БД или допустим к админке модуля прикрутить скрипт выбора цветов или выбор даты (типа всем известные UI компоненты). Думаю многие будут признательны.

Спасибо за статьи, очень доходчиво и наглядно !!
хотелось бы узнать больше о классах и методах в joomle, а так-же как ими пользоваться. да и про сессии тоже..

Здравствуете !
было бы интересно как узнать url текущей страницы, обновление данных в модуле при помощи джава и данных из БД и (или) с jquery… без перезагрузки..

P.S.
Урок 5 и 6 у меня устанавливается коряво — > пропадают все кнопки и меню. V2.5.6 .
установка — > Загрузить файл пакета .

если устанавливать через поиск, выдает ошибку 500.. удаляю language — > устанавливается.??

Здравствуйте, после установки вашего модуля, вообще перестал работать менеджер модулей..

Добавить комментарий

Professional Responsive Joomla Templates