From fd8975481814d1ae3fd61b11633080cd97ba130f Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Tue, 14 Jun 2011 20:09:23 -0400
Subject: [PATCH] Allow to specify multiple sort columns as array (currently only used for VLV)

---
 program/include/rcube_ldap.php |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/program/include/rcube_ldap.php b/program/include/rcube_ldap.php
index f1c9a33..3f84ea5 100644
--- a/program/include/rcube_ldap.php
+++ b/program/include/rcube_ldap.php
@@ -113,7 +113,7 @@
         foreach ($this->prop['required_fields'] as $key => $val)
             $this->prop['required_fields'][$key] = $this->_attr_name(strtolower($val));
 
-        $this->sort_col = $p['sort'];
+        $this->sort_col = is_array($p['sort']) ? $p['sort'][0] : $p['sort'];
         $this->debug = $debug;
         $this->mail_domain = $mail_domain;
 
@@ -900,7 +900,7 @@
      */
     private function _vlv_set_controls()
     {
-        $sort_ctrl = array('oid' => "1.2.840.113556.1.4.473",  'value' => $this->_sort_ber_encode(array($this->sort_col)));
+        $sort_ctrl = array('oid' => "1.2.840.113556.1.4.473",  'value' => $this->_sort_ber_encode((array)$this->prop['sort']));
         $vlv_ctrl  = array('oid' => "2.16.840.1.113730.3.4.9", 'value' => $this->_vlv_ber_encode(($offset = ($this->list_page-1) * $this->page_size + 1), $this->page_size), 'iscritical' => true);
 
         $this->_debug("C: set controls sort=" . join(' ', unpack('H'.(strlen($sort_ctrl['value'])*2), $sort_ctrl['value'])) . " ({$this->sort_col});"

--
Gitblit v1.9.1