0

我对一些 k2 核心文件进行了修改,为类别中的项目添加了另一个排序选项(按类别 ID 排序)。我已对以下文件进行了修改以实现此目的:

添加了第 279 行的 com_k2/models/itemlist.php

     case 'catid':
         $orderby = 'i.catid ASC';
         break;

com_k2/views/itemslist/tmpl/category.xml 在第 81 行添加

<option value="catid">Category</option>

com_k2/views/itemslist/tmpl/generic.xml 在第 22 行添加

<option value="catid">Category</option>

我所做的黑客似乎工作正常,但前提是我在数据库中手动更改 jos_k2_categories 表中的 params 字段。每当我通过管理员更改类别时,“项目排序”字段将恢复为“默认”。在我看来,将选项添加到 xml 文件应该使此选项可用,但我对 Joomla 中的扩展开发知识有限。还有其他地方可以添加这个新选项吗?我如何获得我添加的新订购选项以显示在 Joomla 管理员中?

4

1 回答 1

2

您没有指定您做了什么样的黑客攻击,但我相信您需要在components/com_k2/views/itemlist/tmpl/category.xml
此处进行更改,您可以在管理面板中设置有关项目排序的选项。您可以选择以下内容:

<param name="itemOrdering" type="list" default="" label="Item ordering" description="Select the order of items">
   <option value="date">Oldest first</option>
   <option value="rdate">Most recent first</option>
   <option value="alpha">Title Alphabetical</option> 
   <option value="order">Ordering</option>
   <option value="rand">Random ordering</option>
</param>

许多值被加载到components/com_k2/views/itemlist/view.html.php中,您调用$item_ordering = $params->get('itemOrdering')并将其传递给您的模型。查看该文件以获取灵感,我已经有一段时间没有使用 Joomla 了。

于 2011-07-15T21:35:05.063 回答