1

我正在 Joomla 中编写一个模块!2.5. 该模块在给定位置显示一篇文章。我需要文章属性(即show_titlelink_titleecc。)使用此代码,我可以获得文章的特定属性:

$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!在这个框架中有一个特定的类吗?

4

1 回答 1

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 因为他们做了很多与您尝试创建的类似的事情。你也可以阅读这篇文章,它有点过时了,但我认为它仍然大部分是正确的(除了 jparams 被 jforms 取代)。

于 2012-03-20T05:00:30.847 回答