我正在构建一个Joomla模块,可以获取网站上所有文章的数组 - 无论类别如何 - 然后识别类别,检索介绍文本和标题,并显示标题,类别和介绍文本平铺布局中每个类别中最近的两篇文章。我完成了布局,但我不知道从哪里开始。有可能吗?
我不反对从类别博客中获取文章,但我不确定这是否可行。
答案 0 :(得分:1)
检索文章的最佳方法是:
$jcontent=JControllerLegacy::getInstance('Content');
$jarticles=$jcontent->getModel('Articles');
$jarticles->getState();
$jarticles->setState('filter.article_id', $ids);
$jarticles->setState('list.limit', count($ids));
$jarticles->setState('filter.published', 1);
$articles=$jarticles->getItems();
这段代码经过测试,对我来说,这是最好的方法 - 它使用Joomla抽象来检索文章,它使用Joomla缓存而不依赖于数据库结构。
答案 1 :(得分:0)
这是代码未经过测试,您可能需要检查并进行微小修改。
方法1 :在此您需要再次从循环内部的类别ID查询类别详细信息。
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from('#__content');
$db->setQuery((string)$query);
$res = $db->loadObjectList();
foreach($res as $r){
//query category details also here
echo '<h3>'.$r->title.'</h3>';
echo $r->introtext;
}
方法2 :在此方法中,您应该在一个查询中同时获取内容和类别详细信息。在select查询中,您需要包含所需的字段名称。
$db = JFactory::getDbo();
$db->setQuery('SELECT #__content.title as contentTitle, #__categories.title as catTitle FROM #__content, #__categories WHERE #__content.catid = #__categories.id');
$details = $db->loadObjectList();
print_r(details);