Как из базы вытащить значение параметра? А конкретно:
В таблице "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
loadResult
loadObject
loadObjectList
Спустя 6 минут, 44 секунды (16.03.2012 - 12:09) Lutsk написал(а):
все равно getParam() не находит. Как-то инициализировать надо...
Спустя 2 минуты, 34 секунды (16.03.2012 - 12:12) TMake написал(а):
Lutsk
инициализируешь через setQuery()
Выводишь loadResult()
инициализируешь через 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"; |
Да нет. Все равно 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 написал(а):
Выкладываю основное:
я там по всякому пробовал с JComponentHelper::getParams и т.д., - пока безрезультатно
<!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)
}
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 написал(а):
Оказывается, код простой. Но на решение ушел день. Может, кому с Джумлой пригодится:
Всё. В переменной $param наш параметр.
$menu = & JSite::getMenu();
$item = $menu->getActive();
$params =& $menu->getParams($item->id);
$param = $params->get('header_image');
Всё. В переменной $param наш параметр.