我正在尝试使用模板来处理Joomla 3中的排序菜单。
我正在使用类别布局和一个工作正常的无限加载脚本。
之后,我从 categorie_list 模块中创建了一个新菜单,该模块将这样的参数(?category=your_category
)添加到标签中。
现在为了让这个系统工作,我需要更改博客视图从中获取文章的类别。
我已经找到了
的位置components/com_content/models/category.php
第222行
function getItems()
{
$limit = $this->getState('list.limit');
if ($this->_articles === null && $category = $this->getCategory())
{
$model = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true));
$model->setState('params', JFactory::getApplication()->getParams());
$model->setState('filter.category_id', '$category->id'); // <- here!!!
$model->setState('filter.published', $this->getState('filter.published'));
$model->setState('filter.access', $this->getState('filter.access'));
$model->setState('filter.language', $this->getState('filter.language'));
$model->setState('list.ordering', $this->_buildContentOrderBy());
$model->setState('list.start', $this->getState('list.start'));
$model->setState('list.limit', $limit);
$model->setState('list.direction', $this->getState('list.direction'));
$model->setState('list.filter', $this->getState('list.filter'));
// filter.subcategories indicates whether to include articles from subcategories in the list or blog
$model->setState('filter.subcategories', $this->getState('filter.subcategories'));
$model->setState('filter.max_category_levels', $this->setState('filter.max_category_levels'));
$model->setState('list.links', $this->getState('list.links'));
if ($limit >= 0)
{
$this->_articles = $model->getItems();
if ($this->_articles === false)
{
$this->setError($model->getError());
}
}
else
{
$this->_articles = array();
}
$this->_pagination = $model->getPagination();
}
return $this->_articles;
}
由于我不知道,如何在模板中覆盖模型甚至使用Google搜索它,我发现只需通过插件导入它。 这不是我需要和想要的东西。
也许你们有一个方便的伎俩。
答案 0 :(得分:1)
第一个建议
如何从Joomla中覆盖组件mvc!芯强>
http://docs.joomla.org/How_to_override_the_component_mvc_from_the_Joomla!_core
注意:此方法仅适用于安装和启用第三方MVC插件 - 或提供您自己的等效插件。这对高级开发人员来说很好 - 请注意,这不是Joomla的一部分!核心代码。
第二个建议
复制整个核心组件,破解副本并将副本打包为新名称(例如com_mycustomcontent)。通过这样做,您将不会遇到升级问题,除非原始组件存在安全问题。这意味着如果您不知道如何将原始组件的更新应用于组件,那么您将陷入困境。