Horde_Registry::getServiceLink PHP Method

    public function getServiceLink($type, $app = null, $full = false)
    {
        $opts = array('app' => 'horde');
        switch ($type) {
            case 'ajax':
                if (is_null($app)) {
                    $app = 'horde';
                }
                return Horde::url('services/ajax.php/' . $app . '/', $full, $opts)->add('token', $GLOBALS['session']->getToken());
            case 'cache':
                $opts['append_session'] = -1;
                return Horde::url('services/cache.php', $full, $opts);
            case 'download':
                return Horde::url('services/download/', $full, $opts)->add('app', $app);
            case 'emailconfirm':
                return Horde::url('services/confirm.php', $full, $opts);
            case 'go':
                return Horde::url('services/go.php', $full, $opts);
            case 'help':
                return Horde::url('services/help/', $full, $opts)->add('module', $app);
            case 'imple':
                return Horde::url('services/imple.php', $full, $opts);
            case 'login':
                return Horde::url('login.php', $full, $opts);
            case 'logintasks':
                return Horde::url('services/logintasks.php', $full, $opts)->add('app', $app);
            case 'logout':
                return $this->getLogoutUrl(array('reason' => Horde_Auth::REASON_LOGOUT));
            case 'pixel':
                return Horde::url('services/images/pixel.php', $full, $opts);
            case 'prefs':
                if (!in_array($GLOBALS['conf']['prefs']['driver'], array('', 'none'))) {
                    $url = Horde::url('services/prefs.php', $full, $opts);
                    if (!is_null($app)) {
                        $url->add('app', $app);
                    }
                    return $url;
                }
                break;
            case 'portal':
                return $this->getView() == Horde_Registry::VIEW_SMARTMOBILE ? Horde::url('services/portal/smartmobile.php', $full, $opts) : Horde::url('services/portal/', $full, $opts);
                break;
            case 'problem':
                return Horde::url('services/problem.php', $full, $opts)->add('return_url', Horde_Util::getFormData('location', Horde::selfUrl(true, true, true)));
            case 'sidebar':
                return Horde::url('services/sidebar.php', $full, $opts);
            case 'twitter':
                return Horde::url('services/twitter/', true);
        }
        throw new BadFunctionCallException('Invalid service requested: ' . print_r(debug_backtrace(false), true));
    }