Часть 5 Использование БД

14/04/2012 Разработка модуля Joomla 2.5

Как писалось в предидущей части запросы и оперирование данными проще делать в файле "помощнике". В качестве примера составим запрос на выбор случайных трех заголовков из опубликованных материалов.

helper.php

<?php
/**
 * @package     Joomla.Tutorials
 * @subpackage  Module
 * @copyright   (C) 2012 http://jomla-code.ru
 * @license     License GNU General Public License version 2 or later; see LICENSE.txt
 */ 
 
// No direct access.
defined('_JEXEC') or die('(@)|(@)');

class modHelloworldHelper
{
	public static function getList(&$params)
	{
		$db = JFactory::getDbo();
		$query = $db->getQuery(true);
		$query->select('title');
		$query->from('#__content');
		$query->where('state = 1');
		$query->order('RAND()');
		$db->setQuery($query, 0, 3);
		
		$list = $db->loadObjectList();

		return $list;
	}
	
}

Соответственно нужно изменить макет вывода, так как туда будет попадать уже объект, а не переменная.

tmpl/default.php

/**
 * @package     Joomla.Tutorials
 * @subpackage  Module
 * @copyright   (C) 2012 http://jomla-code.ru
 * @license     License GNU General Public License version 2 or later; see LICENSE.txt
 */

// No direct access.
defined('_JEXEC') or die('(@)|(@)');
?>
<ul>
<?php
foreach ($list as $item) {
	echo '<li>'.$item->title.'</li>';
}
?>
</ul>
Вложения:
mod_helloworld_part5.zip[ ] (1526) Загрузок

13 

Комментарии   

 
+6 Gg
19.05.2012 12:55
А как сделать чтобы в xml создавалась база данных? И как вытащить одной строчкой запрос?
Ответить
 
 
+2 Sergio
19.12.2012 19:47
При установке\удалении компонента можно выполнять sql. Можно ли также сделать с модулем?
Ответить
 
 
-4 odil
16.10.2013 10:07
Зд. Скажите пож. как сделать так что бы этот модель показаль контенть ииз разного компонента и из обределенного категория и разными настройками шаблонами.
Ответить
 
 
-1 serguesQX
22.05.2014 17:08
Огромное спасибище!
Расжеванно быстро и просто!
Ответить
 
 
0 Вова
11.07.2014 23:54
Здравствуйте. Спасибо за статью.
Я пытаюсь сделать вывод содержимого из другой таблицы, но у меня не выходит. Прошу помощи в подсказке. Например:
helper.php
class modHelloworldHelper
{
public static function getList(&$params)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('title');
$query->from('#__menu');
$query->where('menutype = menu');
$query->order('RAND()');
$db->setQuery($query, 0, 3);

$list = $db->loadObjectList();

return $list;
}

}

mod_helloworld.php
// Подключаем файл помошника
require_once dirname(__FILE__).'/helper.php';
// Выполняем getList метод из помошника
$list = modHelloworldHelper::getList($params);

require JModuleHelper::getLayoutPath('mod_helloworld', $params->get('layout', 'default'));
Ответить
 
 
0 Вован
05.09.2014 17:49
Не знаю как точно но по логике написания SQL запросов:

не
$query->where('menutype = menu');

а
$query->where('menutype = "menu"');
Ответить
 
 
0 silrage
09.02.2015 10:30
Поправка только в параметрах функции требуется (getList("&
Ответить
 
 
0 silrage
09.02.2015 10:31
Огромнейшее спасибо за такой экспресс-курс :)
Ответить
 

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


Защитный код
Обновить