【问题标题】:Joomla blog override- How can I access articles in a subcategory?Joomla 博客覆盖 - 我如何访问子类别中的文章?
【发布时间】:2014-11-05 19:28:40
【问题描述】:

我正在为电子商务网站创建一个 Joomla 博客覆盖并寻求帮助。我想将子类别用作页面上的一种辅助导航或过滤器,以确定显示哪些文章。它们都应该显示在同一页面上,一次只显示一个类别(用户选择)。

我可以看到 $this->children[$this->category->id] 调用子类别,我只需要帮助弄清楚如何在选择子类别后访问子类别的文章。

任何帮助将不胜感激!

【问题讨论】:

  • 这是您想要在不重新加载页面的情况下执行的操作吗?另外,子类别过滤器列表是显示在组件视图内还是在专用模块中?
  • 如果可能的话,我想我想在不重新加载页面的情况下这样做,但实际上我只关心它们都在同一个页面上。现在子类别在组件的视图中。我希望将这两个元素合并到我修改过的 blog.php 中。
  • 您是否尝试过实现任何 javascript 来根据类别 ID 隐藏/显示?您可以使用核心视图的模板覆盖将 ids 插入到包含行的 div 中。
  • 现在有一个joomla.stackexchange.com,您可能想尝试将其移到那里

标签: php joomla


【解决方案1】:

这里只是一些基本的方向:

正如 Brian Boli 在他的评论中所说,这将需要 javascript。您必须实现它的方式取决于您要实现的目标。

如果这些只是几篇文章,那么您可以按照 Brian 所说的方式进行操作,通过调用/加载页面中的所有文章并使用简单的 javascript(可能是 jQuery)来显示/隐藏页面中的文章元素他们的身份证。

但是,如果您的类别包含数百篇文章,这可能不会那么有效。 使用子类别作为过滤器并让所有这些文章出现在同一个博客页面/网址中而无需重新加载导航等,将需要 AJAX 实现。所以 subcat 过滤器会从数据库中调用亲戚文章并立即更新视图。

如果您不适应所有这些,您可以将即时视图更新的想法留在同一页面上,并创建一个简单的模块(或者搜索现有的模块),该模块将在博客页面上动态工作(但不一定),并将显示所有子类别及其博客布局的链接。

更新:

获取每个分类的文章:

hmm...好吧,您有类别 ID,因此您可以直接从数据库中调用文章,或者更好地使用 Joomla 模型在 blog_children.php 模板中获取每个类别的文章。

$model = JModelList::getInstance('Articles', 'ContentModel', array('ignore_request'=>true));

$appParams = JFactory::getApplication()->getParams();
$model->setState('params', $appParams);
$model->setState('filter.category_id', $child->id);
$items = $model->getItems();


foreach ($items as $item) {
    echo "<div class='span12'>";
    echo $item->title;
    echo "</div>";
}

希望这将使您更接近您想要实现的目标。

【讨论】:

  • 谢谢大家的建议!我认为我现在的主要问题(可能是一个简单的问题)是找出调用子类别文章的正确方法。我意识到 children[$this->category->id] as $id => $child) : ?> 循环遍历当前类别的每个子类别,但我不知道调用这些子类别中的文章的正确方法...
  • 更新了关于如何获取每个类别的文章的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-10
  • 1970-01-01
  • 2012-11-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
相关资源
最近更新 更多