/** * Checks if link should be shown and return the nescessary code. * * @param string $type Type of link to display * @param string $app The name of the current Horde application. * @param boolean $override Override Horde settings? * @param boolean $referrer Include the current page as the referrer (url=)? * * @return string The HTML to create the link. */ function getServiceLink($type, $app, $override = false, $referrer = true) { if (!Horde::showService($type, $override)) { return false; } switch ($type) { case 'help': if ($GLOBALS['browser']->hasFeature('javascript')) { Horde::addScriptFile('popup.js', 'horde', true); } $url = Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/services/help/', true); return Util::addParameter($url, 'module', $app); case 'problem': return Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/services/problem.php?return_url=' . urlencode(Horde::selfUrl(true, true, true))); case 'logout': return Horde::url(Auth::addLogoutParameters($GLOBALS['registry']->get('webroot', 'horde') . '/login.php', AUTH_REASON_LOGOUT)); case 'login': return Auth::getLoginScreen('', $referrer ? Horde::selfUrl(true) : null); case 'options': global $conf; if ($conf['prefs']['driver'] != '' && $conf['prefs']['driver'] != 'none') { return Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/services/prefs.php?app=' . $app); } break; } return false; }