我想仅为我的一个属性更改默认排序顺序方向。我知道如何更改特定类别或所有类别的默认方向(参见下面的示例)等,但我如何仅针对一个属性执行此操作?
<catalog_category_default>
<reference name="product_list_toolbar">
<action method="setDefaultDirection"><dir>desc</dir></action>
</reference>
</catalog_category_default>
答案 0 :(得分:0)
要详细说明我的评论,您可以更新catalog/product/list/toolbar.phtml
以使用(未经测试的)
<?php
$_sortableAttributes = array(
'Price (Low to High)' => array(
'attr' => 'price',
'dir' => 'asc'
),
'Price (High to Low)' => array(
'attr' => 'price',
'dir' => 'asc'
),
'Newest' => array(
'attr' => 'entity_id',
'dir' => 'desc'
)
);
?>
<select onchange="setLocation(this.value)">
<?php foreach ($_sortableAttributes as $_label => $_sort): ?>
<option value="<?php echo $this->getOrderUrl($_sort['attr'], $_sort['dir']) ?>"<?php if($this->isOrderCurrent($_sort['attr']) && $this->getCurrentDirection() == $_sort['dir']): ?> selected="selected"<?php endif; ?>><?php echo $this->__($_label);?></option>
<?php endforeach ?>
</select>
您会注意到,选择“最新”时,方向会强制为desc
。
这是坏主意,因为它没有考虑属性的可排序设置或系统配置中的排序选项。