【发布时间】:2014-06-30 06:32:43
【问题描述】:
在类别列表中,我希望能够动态显示文章列表。我正在开发的网站允许用户在阅读文章后“提交”文章。当他们点击提交按钮时,该文章的 ID 将存储在数据库中名为“completed_quests”的表中。我需要做的是让 Joomla 检查文章 ID 是否存在于“内容”和“完成任务”表中。如果文章 ID 存在于两个表中,则该文章不应显示在类别列表中,因为该文章或“任务”已提交。如果文章 ID 存在于“content”表中,但不存在于“completed_quests”表中,则该文章应该显示在类别列表中,因为它尚未提交注释。
我想知道是否有一个特定的核心 Joomla 文件我应该覆盖以更改类别列表输出,或者我是否应该开发一个自定义模块来创建这个动态列表。任何指导将不胜感激。如果您对如何显示此动态列表有任何其他想法,我会全力以赴。
编辑:我开始在 Joomla 中开发一个自定义模块,至少用于测试。下面的代码没有按预期工作。当我取出以下行“WHERE arp2i_completed_quests.id IS NULL”时,它会显示两个表中都存在的文章列表。但我需要它做的是显示存在于内容表中但不在完成任务表中的行。当我添加 WHERE 时,它会为存在的每一行显示文本“ID:”和“TABLE:”,但该行的实际 id 和标题不会回显到屏幕上。请帮忙。
工作代码(见 cmets)。
<?php
$query = "SELECT * FROM arp2i_completed_quests RIGHT JOIN arp2i_content ON arp2i_content.id=arp2i_completed_quests.id WHERE arp2i_completed_quests.id IS NULL LIMIT 0, 30 "; // prepare query
$db = &JFactory::getDBO(); // get database object
$db->setQuery($query); // apply query
$articles = $db->loadObjectList(); // execute query, return result list
foreach($articles as $article){ // loop through articles
echo 'ID:' . $article->id . ' Title: ' . $article->title . '<br />';
}
?>
【问题讨论】:
-
我将其切换为 RIGHT 连接并交换了查询中的表,现在我得到了预期的结果。我再次更新了代码。
-
什么版本的 Joomla?