我对某些k2核心文件进行了修改,为类别中的项目添加了另一个排序选项(按类别ID排序)。我已对以下文件进行了修改以实现此目的:
第279行添加了com_k2 / models / itemlist.php
case 'catid':
$orderby = 'i.catid ASC';
break;
第81行添加了com_k2 / views / itemslist / tmpl / category.xml
<option value="catid">Category</option>
第22行的com_k2 / views / itemslist / tmpl / generic.xml添加
<option value="catid">Category</option>
我做的黑客似乎工作得很好,但只有当我在数据库中手动更改jos_k2_categories表中的params字段时。每当我通过管理员更改类别时,“项目排序”字段将恢复为“默认”。在我看来,添加xml文件的选项应该使这个选项可用,但我对Joomla中的扩展开发知识有限。是否有其他地方添加这个新选项?如何获得我添加的新订购选项以显示在Joomla管理员中?
答案 0 :(得分: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争吵一段时间。