如何在Joomla中获取全局文章参数?

时间:2012-03-20 04:20:49

标签: joomla joomla-extensions joomla2.5

我在Joomla编程模块! 2.5。该模块在给定位置显示文章。 我需要文章属性(即show_titlelink_title ecc。) 使用此代码,我得到文章的特定属性:

$db =& JFactory::getDBO();
$query = 'SELECT * FROM #__content WHERE id='.$id.' AND state=1';
$db->setQuery($query);
$item = $db->loadObject();
$attribs = json_decode($item->attribs, true);

如果我var_dump我得到的$attribs变量:

array(26) {
  ["show_title"]=>
  string(0) ""
  ["link_titles"]=>
  string(0) ""

  [...]

}

变量$attribs表示文章的特定属性。当元素设置为""时,表示“使用全局配置”。

我可以使用此查询获取全局配置:

SELECT params from #__extensions where extension_id=22;

其中22是com_component扩展名的ID。然后我可以将结果与特定文章的结果合并。

但是有一种简单的方法可以实现这一目标吗? Joomla!在这个框架中有一个特定的类?

1 个答案:

答案 0 :(得分:3)

我首先要加载文章的模型:

// Get an instance of the generic articles model
$model = JModel::getInstance('Article',
                             'ContentModel',
                             array('ignore_request' => true));

获取具体文章......

$model->getItem($id)

要获得组件全局参数,我相信您可以使用:

$params = &JComponentHelper::getParams( 'COMPONENT_NAME' );

在您的情况下,您需要以下内容:

jimport('joomla.application.component.helper'); // load component helper first
$params = JComponentHelper::getParams('com_content');

我建议你看一下Joomla附带的文章模块的代码! 2.5.x,因为他们做了很多类似于你想要创建的东西。你也可以阅读this article,它有点过时但我认为它仍然大部分成立(除了jparams被jforms取代)。