[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получение значения параметра из базы
Lutsk
Знатоки API Joomla, нужна Ваша помощь.
Как из базы вытащить значение параметра? А конкретно:
В таблице "jos_menu" есть текстовое поле "params" со значением вида:
show_noauth=
show_title=
link_titles=
show_intro=
...
feed_summary=
page_title=Агрохимтранс
show_page_title=0
pageclass_sfx=
menu_image=-1
header_image=img1.jpg
secure=-1

Вот как отсюда вывести в какую-нибуть переменную значение параметра "header_image"? Понимаю, что начать надо с запроса:

$query = "SELECT params FROM #__menu WHERE id = $Itemid";
$db =& JFactory::getDBO();
$result = $db->setQuery($query);

Но что с этим делать дальше, - не пойму.
Спасибо заранее!



Спустя 6 минут, 12 секунд (16.03.2012 - 11:22) Winston написал(а):
echo $db->getParam('header_image');

?

Спустя 11 минут, 19 секунд (16.03.2012 - 11:34) Lutsk написал(а):
Цитата (Winston @ 16.03.2012 - 08:22)
echo $db->getParam('header_image');

?

написало:
Fatal error: Call to undefined method JDatabaseMySQL::getParam() in W:\home\agro\www\templates\default\index.php on line 39
Видимо там getParam() как-то инициализировать надо, что ли...

Спустя 5 минут, 5 секунд (16.03.2012 - 11:39) Winston написал(а):
А так ?
echo $params->get('header_image)

Спустя 8 минут, 58 секунд (16.03.2012 - 11:48) Lutsk написал(а):
Цитата (Winston @ 16.03.2012 - 08:39)
А так ?
echo $params->get('header_image)

тоже неизвестная функция. В апи джумлы есть класс JParameter, как-то с ним вроде эта фича связана.

Спустя 35 секунд (16.03.2012 - 11:48) ADiel написал(а):
У жумлы есть оличная документация на русском. Советую почитать

Спустя 7 минут, 4 секунды (16.03.2012 - 11:55) Lutsk написал(а):
Цитата (ADiel @ 16.03.2012 - 08:48)
У жумлы есть оличная документация на русском. Советую почитать

Да вот уже три часа по всякому пробую и ни гу-гу. Поэтому и обратился.

Спустя 3 минуты, 9 секунд (16.03.2012 - 11:59) TMake написал(а):
$query = "SELECT params FROM #__menu WHERE id = $Itemid";
$db =& JFactory::getDBO();
$db->setQuery($query);
$result = $db->loadResult($query);

Спустя 3 минуты, 44 секунды (16.03.2012 - 12:02) TMake написал(а):
Там 3 основных:
loadResult
loadObject
loadObjectList

Спустя 6 минут, 44 секунды (16.03.2012 - 12:09) Lutsk написал(а):
все равно getParam() не находит. Как-то инициализировать надо...

Спустя 2 минуты, 34 секунды (16.03.2012 - 12:12) TMake написал(а):
Lutsk
инициализируешь через setQuery()
Выводишь loadResult()


Спустя 11 минут, 17 секунд (16.03.2012 - 12:23) Lutsk написал(а):
$query = "SELECT params FROM #__menu WHERE id = $Itemid";
$db =& JFactory::getDBO();
$db->setQuery($query);
$result = $db->loadResult($query);

print_r($result) вывел:

show_noauth=
show_title=
link_titles=
show_intro=
show_section=
link_section=
show_category=
link_category=
show_author=
show_create_date=
show_modify_date=
show_item_navigation=
show_readmore=
show_vote=
show_icons=
show_pdf_icon=
show_print_icon=
show_email_icon=
show_hits=
feed_summary=
page_title=Агрохимтранс
show_page_title=0
pageclass_sfx=
menu_image=-1
header_image=img1.jpg
secure=-1
$query = "SELECT params FROM #__menu WHERE id = $Itemid";
$db =& JFactory::getDBO();
$db->setQuery($query);
$result = $db->loadObject($query);

var_dump($result) вывел:

object(stdClass)#113 (1) {
["params"]=>
string(407) "show_noauth=
show_title=
link_titles=
show_intro=
show_section=
link_section=
show_category=
link_category=
show_author=
show_create_date=
show_modify_date=
show_item_navigation=
show_readmore=
show_vote=
show_icons=
show_pdf_icon=
show_print_icon=
show_email_icon=
show_hits=
feed_summary=
page_title=Агрохимтранс
show_page_title=0
pageclass_sfx=
menu_image=-1
header_image=img1.jpg
secure=-1

"
}
$query = "SELECT params FROM #__menu WHERE id = $Itemid";
$db =& JFactory::getDBO();
$db->setQuery($query);
$result = $db->loadObjectList($query);

var_dump($result) вывел:

array(1) {
[""]=>
object(stdClass)#113 (1) {
["params"]=>
string(407) "show_noauth=
show_title=
link_titles=
show_intro=
show_section=
link_section=
show_category=
link_category=
show_author=
show_create_date=
show_modify_date=
show_item_navigation=
show_readmore=
show_vote=
show_icons=
show_pdf_icon=
show_print_icon=
show_email_icon=
show_hits=
feed_summary=
page_title=Агрохимтранс
show_page_title=0
pageclass_sfx=
menu_image=-1
header_image=img1.jpg
secure=-1

"
}
}

Спустя 53 минуты, 21 секунда (16.03.2012 - 13:16) TMake написал(а):
пробуй вот это:
$query = "SELECT * FROM #__menu";
$db =& JFactory::getDBO();
$db->setQuery($query);
$result = $db->loadResult($query);

Спустя 7 минут, 57 секунд (16.03.2012 - 13:24) Lutsk написал(а):
Цитата (stepan @ 16.03.2012 - 10:16)
$query = "SELECT * FROM #__menu";
$db =& JFactory::getDBO();
$db->setQuery($query);
$result = $db->loadResult($query);

Да нет. Все равно Call to a member function getParam() on a non-object блин.

Спустя 28 минут, 54 секунды (16.03.2012 - 13:53) TMake написал(а):
Lutsk пробуй запрос в pma запустить
или
$query = "SELECT * FROM `jos_menu`";
$db =& JFactory::getDBO();
$db->setQuery($query);
$result = $db->loadResult($query);

Спустя 8 минут, 14 секунд (16.03.2012 - 14:01) Lutsk написал(а):
Цитата (stepan @ 16.03.2012 - 10:53)
пробуй запрос в pma запустить

не понял, что такое pma.
Я просто чайник в php фактически. Так, - базовые моменты.

Спустя 16 минут, 56 секунд (16.03.2012 - 14:18) TMake написал(а):
pma - phpmyadmin

Спустя 7 минут, 3 секунды (16.03.2012 - 14:25) Lutsk написал(а):
Цитата (stepan @ 16.03.2012 - 11:18)
pma - phpmyadmin

Aaa.
SELECT params FROM jos_menu WHERE id = 1
выводит ячейку "params" где id = 1

Там же значение вида:

show_noauth=
...
header_image=img1.jpg
secure=-1

Спустя 21 минута, 38 секунд (16.03.2012 - 14:47) TMake написал(а):
пробуй так

$query = "SELECT params FROM jos_menu WHERE id = 1";
$db =& JFactory::getDBO();
$db->setQuery($query);
$result = $db->loadResult($query);


если все равно не сработает - выкладывайте весь файл сюда

Спустя 9 минут, 54 секунды (16.03.2012 - 14:57) Lutsk написал(а):
Выкладываю основное:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
<?php
$menu = & JSite::getMenu();
$option = JRequest::getVar('option', null);
$page = JRequest::getVar( 'page', null);
$Itemid = JRequest::getInt( 'Itemid', 1, 'get' );

$query = "SELECT params FROM jos_menu WHERE id = 1";
$db =& JFactory::getDBO();
$db->setQuery($query);
$result = $db->loadResult($query);
//var_dump($result);


//$paramsdata = $row->params;
//$paramsdefs = '/components/com_menus/models/metadata/component.xml';
//$params = new JParameter( $paramsdata, $paramsdefs );
//$params = JComponentHelper::getParams( 'com_menus' );
//$params->merge ( new JParameter ( $row->params ) );
//$my_param_value = $params->get ( 'header_image' ) ;


?>
<head>
<
jdoc:include type="head" />
<
link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template;?>/css/template.css" type="text/css" />
</
head>

<
body>
<
div class="wraper">
<?php echo $result->getParam('header_image'); ?>

</body>
</
html>

я там по всякому пробовал с JComponentHelper::getParams и т.д., - пока безрезультатно

Спустя 1 час, 10 минут, 52 секунды (16.03.2012 - 16:08) TMake написал(а):
что выводит?
$db =& JFactory::getDBO();
var_dump($db);

Спустя 35 минут, 9 секунд (16.03.2012 - 16:43) Lutsk написал(а):
Вот это:
object(JDatabaseMySQL)#11 (19) {
["name"]=>
string(5) "mysql"
["_nullDate"]=>
string(19) "0000-00-00 00:00:00"
["_nameQuote"]=>
string(1) "`"
["_sql"]=>
string(40) "SELECT params FROM jos_menu WHERE id = 1"
["_errorNum"]=>
int(0)
["_errorMsg"]=>
string(0) ""
["_table_prefix"]=>
string(4) "jos_"
["_resource"]=>
resource(24) of type (mysql link)
["_cursor"]=>
resource(110) of type (Unknown)
["_debug"]=>
int(0)
["_limit"]=>
int(0)
["_offset"]=>
int(0)
["_ticker"]=>
int(0)
["_log"]=>
array(0) {
}
["_utf"]=>
bool(true)
["_quoted"]=>
array(0) {
}
["_hasQuoted"]=>
bool(false)
["_errors"]=>
array(0) {
}
["debug"]=>
int(0)
}

Спустя 3 минуты (16.03.2012 - 16:46) TMake написал(а):
SELECT `params` FROM `jos_menu` WHERE `id` = 1;

Спустя 7 минут, 27 секунд (16.03.2012 - 16:53) Lutsk написал(а):
stepan, этот запрос я уже пробовал.

Спустя 8 минут, 50 секунд (16.03.2012 - 17:02) TMake написал(а):
Lutsk тогда тебе в мануал пара

Спустя 4 часа, 59 минут, 31 секунда (16.03.2012 - 22:02) Lutsk написал(а):
Оказывается, код простой. Но на решение ушел день. Может, кому с Джумлой пригодится:
$menu = & JSite::getMenu();
$item = $menu->getActive();
$params =& $menu->getParams($item->id);
$param = $params->get('header_image');


Всё. В переменной $param наш параметр.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.