From ce097cdbef58c101afc9162dc2e509c8c08248af Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Thu, 3 May 2018 10:32:51 +0000 Subject: [PATCH] Fix support for imap hierarchy delimiter different than a slash char (Bifrost#T71208) --- plugins/calendar/drivers/kolab/kolab_user_calendar.php | 3 ++- plugins/libkolab/lib/kolab_storage_folder_api.php | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/calendar/drivers/kolab/kolab_user_calendar.php b/plugins/calendar/drivers/kolab/kolab_user_calendar.php index 62e51414..185b6099 100644 --- a/plugins/calendar/drivers/kolab/kolab_user_calendar.php +++ b/plugins/calendar/drivers/kolab/kolab_user_calendar.php @@ -38,7 +38,8 @@ class kolab_user_calendar extends kolab_calendar */ public function __construct($user_or_folder, $calendar) { - $this->cal = $calendar; + $this->cal = $calendar; + $this->imap = $calendar->rc->get_storage(); // full user record is provided if (is_array($user_or_folder)) { diff --git a/plugins/libkolab/lib/kolab_storage_folder_api.php b/plugins/libkolab/lib/kolab_storage_folder_api.php index fd5b53e0..1879d6b9 100644 --- a/plugins/libkolab/lib/kolab_storage_folder_api.php +++ b/plugins/libkolab/lib/kolab_storage_folder_api.php @@ -157,7 +157,8 @@ abstract class kolab_storage_folder_api */ public function get_foldername() { - $parts = explode('/', $this->name); + $parts = explode($this->imap->get_hierarchy_delimiter(), $this->name); + return rcube_charset::convert(end($parts), 'UTF7-IMAP'); } @@ -168,7 +169,9 @@ abstract class kolab_storage_folder_api */ public function get_parent() { - $path = explode('/', $this->name); + $delim = $this->imap->get_hierarchy_delimiter(); + $path = explode($delim, $this->name); + array_pop($path); // don't list top-level namespace folder @@ -176,7 +179,7 @@ abstract class kolab_storage_folder_api $path = array(); } - return join('/', $path); + return join($delim, $path); } /**