Move utility function to libkolab for common use

This commit is contained in:
Thomas Bruederli 2015-01-08 18:22:59 +01:00
parent 44b67121b7
commit 854779406d
2 changed files with 20 additions and 19 deletions

View file

@ -355,6 +355,24 @@ class kolab_storage_config
return false;
}
/**
* Simplify the given message URI by converting the mailbox
* part into a relative IMAP path valid for the current user.
*/
public static function local_message_uri($uri)
{
if (strpos($uri, 'imap:///') === 0) {
$linkref = kolab_storage_config::parse_member_url($uri);
return 'imap:///' . implode('/', array_map('rawurlencode', explode('/', $linkref['folder']))) .
'/' . $linkref['uid'] .
'?' . http_build_query($linkref['params'], '', '&');
}
return $uri;
}
/**
* Build array of member URIs from set of messages
*

View file

@ -825,7 +825,7 @@ class tasklist_kolab_driver extends tasklist_driver
private function get_links($uid)
{
$config = kolab_storage_config::get_instance();
return array_map(array($this, '_convert_message_uri'), $config->get_object_links($uid));
return array_map(array('kolab_storage_config','local_message_uri'), $config->get_object_links($uid));
}
/**
@ -855,23 +855,6 @@ class tasklist_kolab_driver extends tasklist_driver
return $config->save_object_links($uid, $links, $remove);
}
/**
* Simplify the given message URI by converting the mailbox
* part into a relative IMAP path valid for the current user.
*/
protected function _convert_message_uri($uri)
{
if (strpos($uri, 'imap:///') === 0) {
$linkref = kolab_storage_config::parse_member_url($uri);
return 'imap:///' . implode('/', array_map('rawurlencode', explode('/', $linkref['folder']))) .
'/' . $linkref['uid'] .
'?' . http_build_query($linkref['params'], '', '&');
}
return $uri;
}
/**
* Extract uid + list identifiers from the given input
*
@ -1296,7 +1279,7 @@ class tasklist_kolab_driver extends tasklist_driver
public function get_message_uri($headers, $folder)
{
$uri = kolab_storage_config::get_message_uri($headers, $folder);
return $this->_convert_message_uri($uri);
return kolab_storage_config::local_message_uri($uri);
}
/**