From 0ec7fe4efc8f6e1cd8fba5084c5c1a30cd900370 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Sat, 14 May 2011 10:38:27 -0400 Subject: [PATCH] Fix sort order when contact name is empty --- program/include/rcube_mdb2.php | 26 ++++++++++++++++++++++++++ program/include/rcube_contacts.php | 2 +- 2 files changed, 27 insertions(+), 1 deletions(-) diff --git a/program/include/rcube_contacts.php b/program/include/rcube_contacts.php index e7c078f..687b4b1 100644 --- a/program/include/rcube_contacts.php +++ b/program/include/rcube_contacts.php @@ -184,7 +184,7 @@ " AND c.user_id=?" . ($this->group_id ? " AND m.contactgroup_id=?" : ""). ($this->filter ? " AND (".$this->filter.")" : "") . - " ORDER BY c.name, c.email", + " ORDER BY ". $this->db->concat('c.name', 'c.email'), $start_row, $length, $this->user_id, diff --git a/program/include/rcube_mdb2.php b/program/include/rcube_mdb2.php index a68d1dd..02ed17a 100644 --- a/program/include/rcube_mdb2.php +++ b/program/include/rcube_mdb2.php @@ -600,6 +600,32 @@ } } + /** + * Abstract SQL statement for value concatenation + * + * @return string SQL statement to be used in query + * @access public + */ + function concat(/* col1, col2, ... */) + { + $func = ''; + switch($this->db_provider) { + case 'mysql': + case 'mysqli': + $func = 'CONCAT'; + $delim = ', '; + break; + case 'mssql': + case 'sqlsrv': + $delim = ' + '; + break; + default: + $delim = ' || '; + } + + return $func . '(' . join($delim, func_get_args()) . ')'; + } + /** * Encodes non-UTF-8 characters in string/array/object (recursive) -- Gitblit v1.9.1