在joomla 2.5上选择具有不同catid的文章

时间:2013-03-26 23:51:59

标签: php mysql joomla

我有joomla 2.5,其中文章包含父类和子类。如下所示:

  • 第1条类别是新闻 - >校园 - >研究所
  • 第2条类别是新闻 - >校园 - >大学
  • 第3条类别是新闻 - >校园 - >研究所
  • 第4条类别是新闻 - >校园 - >大学

在这里,新闻是校园的父类别,依此类推。我知道每个类别都有独特的catid。但是,在数据库中,joomla只根据最后一个类别记录每篇文章。所以,如果我想根据新闻ID获取文章,那么结果就是空数组。所以,我必须选择学院或大学的身份证。但是,我想要的是如何将学院和大学类别的文章放在一起。

有没有人可以帮我解决使用joomla 2.5的php的问题?

2 个答案:

答案 0 :(得分:2)

类别存储为Nested Sets。 如果从数据库中检索“新闻”类别,则列'lft'和'rgt'包含所有子类别的边界值。查询

SELECT * FROM #__categories AS category
LEFT JOIN  #__categories AS parent
    ON category.lft BETWEEN parent.lft AND parent.rgt
WHERE parent.id = 3

将为您提供ID为3的类别的所有子类别。请改为使用“新闻”类别的ID。

请注意,查询绝不是优化的,仅用于说明方法。

答案 1 :(得分:0)

如果您想在模块中显示文章,您可以使用一个文章模块,它允许显示来自预选类别的内容,例如 模块文章类别(选项>过滤选项>类别>学院,大学)

如果您想在主(内容)窗口而不是模块中显示这些文章:

  1. 制作新文章
  2. "{loadposition xx}{loadmodule yyy}代码放入其中(请参阅How do you put a module inside an article?
  3. 如果您对使用过的数据库查询感兴趣,那么这些模块和菜单项 Content>使用的基数为ContentModelArticles model。特色文章,允许预选类别。