如何改变Magento Enterprise“;“按价格排序”;下降?
我在toolbar.phtml中使用了此块:如何改变Magento Enterprise“;“按价格排序”;下降?,magento,sorting,Magento,Sorting,我在toolbar.phtml中使用了此块: <div class="sort-by"> <label><?php echo $this->__('Sort By') ?></label> <select onchange="setLocation(this.value)"> <?php foreach($this->getAvailableOrders() as $_k
<div class="sort-by">
<label><?php echo $this->__('Sort By') ?></label>
<select onchange="setLocation(this.value)">
<?php foreach($this->getAvailableOrders() as $_key=>$_order): ?>
<option value="<?php echo $this->getOrderUrl($_key, 'desc') ?>"<?php if($this->isOrderCurrent($_key)): ?> selected="selected"<?php endif; ?>>
<?php echo $this->__($_order) ?>
</option>
<?php endforeach; ?>
</select>
**<?php if($this->getCurrentDirection() == 'desc'): ?>**
<a class="category-desc v-middle" href="<?php echo $this->getOrderUrl(null, 'asc') ?>" title="<?php echo $this->__('Set Ascending Direction') ?>"><?php echo $this->__('Set Ascending Direction') ?></a>
<?php else: ?>
<a class="category-asc v-middle" href="<?php echo $this->getOrderUrl(null, 'desc') ?>" title="<?php echo $this->__('Set Descending Direction') ?>"><?php echo $this->__('Set Descending Direction') ?></a>
<?php endif; ?>
</div>
Magento目前不允许您从后端配置定义排序顺序。然而,它们让你选择你可以排序的东西。要更改默认排序顺序,必须执行以下操作:
将app/code/core/Mage/Catalog/Block/Product/List/Toolbar.php复制到
app/code/local/Mage/Catalog/Block/Product/List/Toolbar.php
打开app/code/local/Mage/Catalog/Product/Block/List/Toolbar.php
查找protected$\u direction='asc'代码>
更改为protected$\u direction='desc'代码>
保存文件,清除缓存
要将默认排序方式更改为价格,请执行以下操作:
在Magento管理中,转到System>Configuration>Catalog
将产品列表排序方式更改为价格
单击保存配置
在catalog.xml中添加值:
<action method="setDefaultDirection"><dir>desc</dir></action>
desc
例如:
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
<block type="page/html_pager" name="product_list_toolbar_pager"/>
<!-- The following code shows how to set your own pager increments -->
<!-- .... -->
<action method="setDefaultDirection"><dir>desc</dir></action>
</block>
描述
您是否试图更改默认排序顺序?修改工具栏不会更改默认排序顺序。当用户与它交互时,它只是一种设置排序顺序的机制。公共函数setDefaultOrder($field){if(isset($this->_availableOrder[$field]){$this->_orderField=$field;}返回$this;}我试过使用这个函数,理想情况下,我只想全局地将所有排序更改为默认->价格->下降确切地说,您要在哪个页面上更改排序顺序?这是前端还是后端,这是订单历史页面吗?我正在尝试在前端->类别中更改它。谢谢,这是有效的。但是它的app/code/local/mage/catalog/block/product/list/toolbar.php您应该创建一个自定义模块(在app/code/local
中),扩展mage\u catalog\u block\u product\u list\u工具栏
类,并且只覆盖$\u direction
属性,而不是覆盖整个文件。