Respect new configurable sort order for contacts
This commit is contained in:
parent
dc3a82198b
commit
b5a44da343
1 changed files with 17 additions and 18 deletions
|
@ -1017,32 +1017,31 @@ class rcube_kolab_contacts extends rcube_addressbook
|
||||||
*/
|
*/
|
||||||
private function _sort_contacts_comp($a, $b)
|
private function _sort_contacts_comp($a, $b)
|
||||||
{
|
{
|
||||||
$a_name = $a['name'];
|
$a_value = $a[$this->sort_col];
|
||||||
$b_name = $b['name'];
|
$b_value = $b[$this->sort_col];
|
||||||
|
|
||||||
if (!$a_name) {
|
if (!$a_value && $this->sort_col == 'name') {
|
||||||
$a_name = join(' ', array_filter(array($a['prefix'], $a['firstname'],
|
$a_value = join(' ', array_filter(array($a['firstname'], $a['middlename'], $a['surname'])));
|
||||||
$a['middlename'], $a['surname'], $a['suffix'])));
|
|
||||||
if (!$a_name) {
|
|
||||||
$a_name = is_array($a['email']) ? $a['email'][0] : $a['email'];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (!$b_name) {
|
if (!$a_value) {
|
||||||
$b_name = join(' ', array_filter(array($b['prefix'], $b['firstname'],
|
$a_value = is_array($a['email']) ? $a['email'][0] : $a['email'];
|
||||||
$b['middlename'], $b['surname'], $b['suffix'])));
|
|
||||||
if (!$b_name) {
|
|
||||||
$b_name = is_array($b['email']) ? $b['email'][0] : $b['email'];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// return strcasecmp($a_name, $b_name);
|
if (!$b_value && $this->sort_col == 'name') {
|
||||||
|
$b_value = join(' ', array_filter(array($b['firstname'], $b['middlename'], $b['surname'])));
|
||||||
|
}
|
||||||
|
if (!$b_value) {
|
||||||
|
$b_value = is_array($b['email']) ? $b['email'][0] : $b['email'];
|
||||||
|
}
|
||||||
|
|
||||||
|
// return strcasecmp($a_value, $b_value);
|
||||||
// make sorting unicode-safe and locale-dependent
|
// make sorting unicode-safe and locale-dependent
|
||||||
if ($a_name == $b_name)
|
if ($a_value == $b_value)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
$arr = array($a_name, $b_name);
|
$arr = array($a_value, $b_value);
|
||||||
sort($arr, SORT_LOCALE_STRING);
|
sort($arr, SORT_LOCALE_STRING);
|
||||||
return $a_name == $arr[0] ? -1 : 1;
|
return $a_value == $arr[0] ? -1 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue