Вывод из базы данных Joomla 1.5

Статус
В этой теме нельзя размещать новые ответы.

Ведун

Постоялец
Регистрация
21 Авг 2008
Сообщения
65
Реакции
33
Здравствуйте. Видел раздел по базам, но так как вопрос конкретно по Joomla 1.5 - то пишу здесь.

Есть плагин и модуль для джумла. Нужно их "скрестить".

Суть в чем. У модуля есть настройки "папка с изображениями". У плагина тоже такая настройка, чтобы 2 раза не прописывать все это дело, нужно сделать чтобы плагин брал настройки из таблицы модуля.

В принципе получилось все. Единственное, что не могу понять - это как сделать выборку из поля params.

Есть код, который я втыкаю в плагин:

PHP:
<?php 
$req = "select params from #__modules WHERE module='mod_random_image'";
$db = &JFactory::getDBO();
$db->setQuery($req);
$result = $db->loadResult();
?>

<?php 
echo $result;
 ?>

Поле params содержит следующие данные:

PHP:
type=jpg
folder=images/stories/otziv/thumbnails
foldermax=images/stories/otziv
width=150
height=210
moduleclass_sfx=
cache=1
cache_time=900

Мне выводит данные поля params. Но выводит ВСЕ данные. А мне нужно выводить только параметр foldermax.

В связи с этим вопрос, как правильно сформировать запрос, чтобы выводить только параметр foldermax.

Спасибо.
 
Я так понял, что поле params - это одно поле в БД. Значит и извлечь его из базы лучше целиком, а потом разбирать на строки в PHP-коде (делай explode по разделителю строк - получишь массив, каждый элемент которого будет начинаться с названия параметра), или использовать регулярки для выделения параметра из строки. Можно конечно попробовать и в SQL запросе такой разбор сделать, но ИМХО это будет сложнее. :)
 
Попробуй что-то типа этого
Код:
$module =& JModuleHelper::getModule(здесь имя твоего модуля);
$mod_params = new JParameter( $module->params );
$param = $mod_params->get('foldermax', 0);
 
делай explode по разделителю строк - получишь массив, каждый элемент которого будет начинаться с названия параметра
Отлично! Не совсем пока еще разобрался, но суть понял. Ковыряюсь. Спасибо большое за совет и помощь.

UPDATE: Сделал, используя функцию explode(). Все работает практически так как надо, но выводит значение вместе с параметром. Например если я вывожу

PHP:
<?php echo $foldermax; ?>

то на выходе получаю значение

PHP:
foldermax=images/stories/otziv

Можно как-то отсечь foldermax=, оставив непосредственно значение - images/stories/otziv



Попробуй что-то типа этого
Пробовал. Выводит 0, т.е. не цепляет параметр. Игрался по-всякому - не идет.
 
в explode в качестве разделителя используется '=' ????

только что попробовал у себя со своими данными достает параметр правельно....

PHP:
$module =& JModuleHelper::getModule('mainmenu');
$mod_params = new JParameter( $module->params );
$param = $mod_params->get('menutype', 0);
 
только что попробовал у себя со своими данными достает параметр правельно....

Ну конечно. Я указывал модуль как mod_random_image, а надо random_image в моем случае. Все прекрасно работает. Именно то что нужно. Спасибо.
 
Мда... Поторопился. Вчера проверил в index.php такую конструкцию как Вы предложили - все работает. Если использовать в файле плагина, то выдает ошибку "Fatal error: Class 'JModuleHelper' not found in ... on line 11"
 
Попробуй перед кодом поставить такую строчку
Код:
jimport('joomla.application.module.helper');
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху