从Joomla菜单表中获取“params”的简便方法

时间:2011-02-10 13:50:45

标签: joomla1.5

我对Joomla不太了解,但我正在尝试使用Joomla网站上的菜单。在数据库中,我可以在菜单表中看到一个名为params的列,它有一些我需要的数据。 params列有这些数据:

categories=446
feedLink=1
fusion_item_subtext=
fusion_columns=1
fusion_customimage=
splitmenu_item_subtext=
page_title=
show_page_title=1
pageclass_sfx=
menu_image=-1
secure=0

我知道我可以执行一个mysql查询,获取该列并使用字符串操作/正则表达式解析该值,但这听起来不是正确的方法。

我在Joomla中看到了一些代码如下:

$cid = $params->get('secure');

Joomla是否有一种特殊的方法来查询和返回对象,以便使用这种语法可以访问这些参数?

3 个答案:

答案 0 :(得分:3)

正确的方法是使用JMenu::getParams方法

$app =& JFactory::getApplication();
$menu =& $app->getMenu();
$params = $menu->getParams($menuItemId);
$params->get('paramName');

答案 1 :(得分:2)

是的,Joomla确实有特殊的方法在基于JObject的易于访问的对象中获取参数。

您可以使用此

获取整个网站菜单
$menu = JFactory::getApplication()->getMenu();
$item = $menu->getActive(); // will get active menu item. can use getItem() instead to get specific item
$item->get('parmName'); 

这不是确切的代码,更像是伪代码。这将使您走上正确的轨道......

有用的东西:

答案 2 :(得分:0)

首先得到像这样的JApplication实例

$app = & JFactory::getApplication();

或使用joomla 1.5:

global $mainframe //to get JApplication object

像这样得到JMenu实例:

$menu = $app->getMenu();

你可以获得有效的菜单参数或任何其他菜单参数

$active = $menu->getActive(); //get active menu
$menuInstance = $menu->getActive($Itemid); // to get Itemid use JRequest::getInt('Itemid', 0);

这里你有一个带有params字段的StdClass对象,现在你使用像这样的JParameter类

$menuParams = new JParameter($menuInstance->params);

在这里,您可以获得所需的任何参数:

$someParam = $menuParams->get('some_param', 'default');