【问题标题】:Select articles with different catid on joomla 2.5在 joomla 2.5 上选择具有不同 catid 的文章
【发布时间】:2013-03-26 23:51:58
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您是否正在尝试编写自定义扩展?您要在哪里加载文章?一个模块?
  • 不,我是直接在 index.php 页面上制作的..

标签: php mysql joomla


【解决方案1】:

类别存储为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。

请记住,查询绝不是优化的,只是为了说明方法。

【讨论】:

  • 虽然这是检索所需信息的正确查询,但不应将其放在 index.php 中。
【解决方案2】:

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

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

  1. 创建新文章
  2. "{loadposition xx}{loadmodule yyy} 代码放入其中(参见How do you put a module inside an article?

如果您对使用过的数据库查询感兴趣,基础是ContentModelArticles model,这些模块和菜单项Content > Featured文章使用它也可以预选类别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-09
    • 2022-06-10
    • 2012-12-10
    • 1970-01-01
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    相关资源
    最近更新 更多