getTemplate(); $searchTokens = array( '{urlPath}', '{documentRoot}', '{configDir}', ); $replaceTokens = array( $this->getUrlPath(), $this->getDocumentRoot(), $this->getConfigDir() ); $template = str_replace($searchTokens, $replaceTokens, $template); return $template; } /** * Specific template * * @return string */ abstract protected function getTemplate(); /** * Set the URL path of Icinga Web 2 * * @param string $urlPath * * @return $this */ public function setUrlPath($urlPath) { $this->urlPath = '/' . ltrim(trim((string) $urlPath), '/'); return $this; } /** * Get the URL path of Icinga Web 2 * * @return string */ public function getUrlPath() { return $this->urlPath; } /** * Set the document root * * @param string $documentRoot * * @return $this */ public function setDocumentRoot($documentRoot) { $this->documentRoot = trim((string) $documentRoot); return $this; } /** * Detect the document root * * @return string */ public function detectDocumentRoot() { return Icinga::app()->getBaseDir('public'); } /** * Get the document root * * @return string */ public function getDocumentRoot() { if ($this->documentRoot === null) { $this->documentRoot = $this->detectDocumentRoot(); } return $this->documentRoot; } /** * Set the configuration directory * * @param string $configDir * * @return $this */ public function setConfigDir($configDir) { $this->configDir = (string) $configDir; return $this; } /** * Get the configuration directory * * @return string */ public function getConfigDir() { if ($this->configDir === null) { return Icinga::app()->getConfigDir(); } return $this->configDir; } }