public function link()
{
global $registry;
$args = $this->args;
$callback = $raw = false;
switch ($registry->getView()) {
case Horde_Registry::VIEW_MINIMAL:
case Horde_Registry::VIEW_SMARTMOBILE:
$url = new Horde_Core_Smartmobile_Url(Horde::url('smartmobile.php'));
$url->setAnchor('compose');
break;
default:
$url = IMP_Dynamic_Compose::url();
$raw = true;
$callback = array($this, 'composeLinkSimpleCallback');
break;
}
if (isset($args['mailbox'])) {
$url = IMP_Mailbox::get($args['mailbox'])->url($url, $args['buid']);
unset($args['buid'], $args['mailbox']);
} elseif (!$url instanceof Horde_Url) {
$url = Horde::url($url);
}
$url->setRaw($raw)->add($args);
if ($callback) {
$url->toStringCallback = $callback;
}
return $url;
}