我试图按字母顺序对目录页面上的样本(制造商等)上的名称(过滤器块)进行排序。
我去了名为“swatches.phtml”的phtml文件,我发现它调用了集合“$ this-> getItems()”,但在调用thie方法getItems之前我需要设置Order,我试过示例之前调用“getItems”上面的代码:
$items=$this->setOrder('updated_at', 'asc');
然后调用$ items-> getItems()“但它不起作用,任何人都有一个想法,我做错了什么?
答案 0 :(得分:0)
getItems()
函数正在从app/code/core/Mage/Catalog/Block/Layer/Filter/Abstract.php
调用,如果你看那里,你会看到它返回一个filter-item对象数组。您可以使用usort() function在swatches.phtml中对它们进行排序。它看起来与php手册页中的第一个示例非常相似:
<?php
function sortByLabel($a, $b) {
if ($a->getLabel() == $b->getLabel()) {
return 0;
}
return ($a->getLabel() < $b->getLabel()) ? -1 : 1;
}
$items = $this->getItems();
usort($items, "sortByLabel");
?>
<!-- you will have to change the existing foreach loop to use your $items array -->
<?php foreach ($items as $_item): ?>
....