Joomla博客覆盖-如何访问子类别中的文章


Joomla blog override- How can I access articles in a subcategory?

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

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

任何帮助都将不胜感激!

这里只有几个基本方向:

正如Brian Boli在评论中所说,这将需要javascript。你实施它的方式取决于你试图实现的目标。

如果这只是几篇文章,那么你可以按照Brian所说的方式来做,调用/加载页面中的所有文章,并使用简单的javascript(可能是jQuery)根据文章元素的id在页面中显示/隐藏文章元素。

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

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

更新:

获取每个类别的文章:

嗯。。。好吧,你有类别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>";
}

希望这能让你更接近你想要实现的目标。