X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_listingSortIterator.inc;h=14aef7630feb6b312578acae870cb0e2b0753222;hb=6e04f2e6bcdfe38a342086628aaa1249fb707047;hp=e656d98a9c1fcbee351d95eeb49abe8f1576ad69;hpb=a62bc7d3e69b59cb9abfae1bf5368721bcabf889;p=gosa.git diff --git a/gosa-core/include/class_listingSortIterator.inc b/gosa-core/include/class_listingSortIterator.inc index e656d98a9..14aef7630 100644 --- a/gosa-core/include/class_listingSortIterator.inc +++ b/gosa-core/include/class_listingSortIterator.inc @@ -52,22 +52,32 @@ class listingSortIterator implements Iterator { // Take a look at the several types switch ($_sortType) { case 'string': - return strnatcmp($a, $b); + return strcoll($a, $b); + + case 'integer': + return $b - $a; + + case 'date': + list($d, $m, $y)= split('\.', $a); + $a= (int)sprintf("%04d%02d%02d", $y, $m, $d); + list($d, $m, $y)= split('\.', $b); + $b= (int)sprintf("%04d%02d%02d", $y, $m, $d); + return $b-$a; // Sort for string by default default: - return strnatcmp($a, $b); + return strcoll($a, $b); } } // Sort for attribute if ($attribute != "") { - usort($data, "attrSort"); + uasort($data, "attrSort"); } // Invert if direction is set if ($direction) { - $this->data= array_reverse($data); + $this->data= array_reverse($data, true); } else { $this->data= $data; }