Magento属性排序顺序方向

时间:2014-10-21 15:46:18

标签: magento sorting attributes

我想仅为我的一个属性更改默认排序顺序方向。我知道如何更改特定类别或所有类别的默认方向(参见下面的示例)等,但我如何仅针对一个属性执行此操作?

<catalog_category_default>
    <reference name="product_list_toolbar">
        <action method="setDefaultDirection"><dir>desc</dir></action>
    </reference>
</catalog_category_default>

1 个答案:

答案 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

这是坏主意,因为它没有考虑属性的可排序设置或系统配置中的排序选项。