X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_listingSortIterator.inc;h=ed956b68d0e894bd52d1e6a7695003f7204dd1ad;hb=9540255fc994b107abc71468c306d408e290d7bb;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..ed956b68d 100644 --- a/gosa-core/include/class_listingSortIterator.inc +++ b/gosa-core/include/class_listingSortIterator.inc @@ -52,22 +52,38 @@ 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': + if ($a == "") { + $a= "31.12.0000"; + } + if ($b == "") { + $b= "31.12.0000"; + } + list($d, $m, $y)= explode('.', $a); + $a= (int)sprintf("%04d%02d%02d", $y, $m, $d); + list($d, $m, $y)= explode('.', $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; }