/ */ class Ui_Controller_Helper_HelpUrl extends Zend_Controller_Action_Helper_Abstract { const HELP_COOKIE = 'help-page'; const HELP_BASE_URL = 'docs/manual'; const HELP_DEFAULT_PAGE = 'introduction.overview.html'; protected $_url = null; /** * Sets a custom URL to use for Help dialogs. * * @param string $url the URL to use when help dialogs are to be opened. * @return Ui_Controller_Helper_HelpUrl provide a fluent interface. */ public function setUrl($url) { $this->_url = $url; return $this; } /** * Retrieves a custom URL to use for application help. * If the instance URL is unset, we fall back to a cookie-stored URL, * and if that is unset, we fall back to a default page. * * @return string the current help url. */ public function getUrl() { $url = $this->_url; $request = Zend_Controller_Front::getInstance()->getRequest(); $baseUrl = $request->getBaseUrl(); $helpBase = static::HELP_BASE_URL; // if a context-specific url is set, use it. if ($url && P4Cms_Uri::isRelativeUri($url)) { $url = implode('/', array($baseUrl, $helpBase, $url)); } // get the URL from the cookie, if not set $url = $url ?: $request->getCookie(static::HELP_COOKIE); // use the default URL, if still not set $url = $url ?: implode('/', array($baseUrl, $helpBase, static::HELP_DEFAULT_PAGE)); return $url; } }