Magento目录产品列表页添加修改排序方式

Magento的产品列表排序
通过

Mage/Catalog/Block/Product/List/Toolbar.php

这文件控制处理,貌似1.5可以通过后台设置了“$this->_availableOrder = $this->_getConfig()->getAttributeUsedForSortByArray();”,找半天没发现最后还是改文件,放到local里

magento1.5的改法是修改“public function getAvailableOrders”这方法,原先是

public function getAvailableOrders(){
    return $this->_availableOrder;
}

我把它调整为

    public function getAvailableOrders()
    {
        /* at 21:36 2011/8/14 by chen@sjolzy.cn */
        $this->_availableOrder = array(
    //    'popularity' => Mage::helper('catalog')->__('Popularity'),
    //    'entity_id' => Mage::helper('catalog')->__('Newest'),
        'price' => Mage::helper('catalog')->__('Price'),
        'name' => Mage::helper('catalog')->__('Name'),
        'rating_summary' => Mage::helper('catalog')->__('Rating')
        );
        return $this->_availableOrder;
    }

就保留按价格、名城、评分排序。

Magento修改产品的排序为降序

Magento默认的产品列表排序
方式是ASC升序。要改为降序即最新产品在前面可以直接修改以下文件:

/app/code/core/Mage/Catalog/Block/Product/List/toolbar.php

搜索“protected $_direction”,将asc改为desc即可。

或者建立/app/code/local
/Mage/Catalog/Block/Product/List/这个目录结构,复制一份toolbar.php过来后再更改。

Python - 列表、字典和元组的排序

Python有几个内建的排序函数能实现排序。

1. list列表排序

对于Python的列表list进行排序,可以使用内建的sort函数。

>>> s=[2,1,3,0]
>>> s.sort()
[0, 1, 2, 3]

2.dict字典排序

Python的字典数据保存格式和json差不多,Python的dict排序有键的排序和值的排序。

对字典按键排序,元组列表的形式返回

>>> d={"ok":1,"no":2}
>>> sorted(d.items, key=lambda d:d[0])
[('no', 2), ('ok', 1)]

对字典按值排序,元组列表的形式返回

>>> d={"ok":1,"no":2}
>>> sorted(d.items, key=lambda d:d[1])
[('ok', 1), ('no', 2)]

3.元组的排序

>>> li=[(2,'a'),(4,'b'),(1,'d')]
>>> li.sort()
[(1, 'd'), (2, 'a'), (4, 'b')]
标签: 排序, Python

自己写的php一个数字数组排序

<?php
/**
* @数字数组排序 可按从大到小或从小到大排序
*/

function sortArray($array,$choice){
 
 $values = array_values($array);//建立一个数字索引的数组
 $ch=$choice==0?min:max;//参数$choice为0按从小到大排列,否则其他都默认为按从大到小
 do {
  $val = $ch($values);//找出最大或最小值
  $key = array_search($val,$values);//取得最大值的键名
  $result[$key] = $val;//将最大值存入新数组
  unset($values[$key]);
 }while (count($values)>0);
 return $result;
}

//$array = array(100,1000,1,10000);
//$array = sortArray($array,0);
//$array = sortArray($array,1);
//foreach($array as $a){
// echo "$a ";
//}
?>

标签: 数组, 排序

PHP中数组排序

排序方法                           升序                             降序                           用户自定义顺序
键排序                             ksort()                           krsort()                       uksort()
值排序不改变键值             asort()                           arsort()                       uasort()
值排序改变键值                 sort()                             rsort()                         usort()

下面是一个排序的例子:

<?php
   $color_arr = array("b" => "blue", "a" => "aliceblue", "g" => "gold", "y" => "yellow");
   ksort($color_arr);
   reset($color_arr);
   while (list($key, $val) = each($color_arr)) {
     echo "$key = $val<br>\n";
   }
?>

 

输出结果:

 

a = aliceblue
b = blue
g = gold
y = yellow

 

下面的是一个用户自定义的排序:

 

<?php
   function cmp($a, $b){
     if ($a == $b) {
       return 0;
     }
     return ($a > $b) ? -1 :1;
   }
   $a = array(4 => "four", 3 => "three", 20 => "twenty", 10 => "ten");
   uksort($a, "cmp");
   while (list($key, $val) = each($a)) {
     echo "$key = $val<br>\n";
   }
?>

 

输出结果:

 

20 = twenty
10 = ten
4 = four
3 = three

 

uksort()是用户按键排序的,我们定义了键为number类型,在cmp()函数中进行降序排列。

标签: php, 排序