我对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是否有一种特殊的方法来查询和返回对象,以便使用这种语法可以访问这些参数?
答案 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');