/** * Returms url location for IN "map". "map=0,0" - returns contemt of all menus + front page. * @param array $params * @return array - list of menus url */ public function GetMapLoc($params = null) { $arrSiteMap = array(); if (isset($params[self::MAP_PARAM])) { if ($params[self::MAP_PARAM] === "0,0") { /** * Get Home Page url */ $arrSiteMap[] = \RouterSettings::GetBaseUrl(); /** * Read all menu. */ $oMenuLoader = new MenuController(); $currentLocale = \Av\Localization\LocalizationController::GetCurrentLocale(); if ($currentLocale !== false) { $oAllMenus = $oMenuLoader->LoadMenu(array(\Av\Component\Menu\iMenuModelInterface::LOCALE => $currentLocale)); // $this->AddDebug(__METHOD__ . " #" . __LINE__ ." all menues" .print_r($oAllMenus,true)); foreach ($oAllMenus->GetCollection() as $x_y_arrMenu) { foreach ($x_y_arrMenu as $y_arrMenu) { foreach ($y_arrMenu as $oMenu) { if ($oMenu instanceof \Av\Component\Menu\MenuContainer) { // $this->AddDebug(__METHOD__ . " #" . __LINE__ ." oMenu" .print_r($oMenu,true)); $oResLink = $oMenu->GetMenuResLink(); // $this->AddDebug(__METHOD__ . " #" . __LINE__ ." ResLink" .print_r($oResLink,true)); if ($oResLink instanceof \Av\Res\ResContainer) { /** * check if it is absolute path - if not then add "base url" */ $this->AddDebug(__METHOD__ . " #" . __LINE__ . " Directory Separator:" . print_r(DIRECTORY_SEPARATOR, true)); $arrSiteMap[] = \Av\UrlControllerHelper::AsAbsoluteUrl($oResLink->GetMenuResValue()); } } } } } } } } return $arrSiteMap; }
public static function AsAbsoluteUrl($url, $bSecureProtocol = false) { $baseUrl = \RouterSettings::GetBaseUrl(); // . DIRECTORY_SEPARATOR /** * Check if protocol is set -return as-is. It helps to support be any link, like, http://www.cnn.com */ if (strpos($url, self::PROTOCOL_HTTP) === false && strpos($url, self::PROTOCOL_HTTPS) === false) { if (strpos($url, $baseUrl) === false) { /** * Adding base url. */ $url = $baseUrl . (strpos($url, DIRECTORY_SEPARATOR) !== 0 ? DIRECTORY_SEPARATOR : "") . $url; } /* * Theoretically base url should have protocol , like http://www.mysite.com. But if it is not set add it. */ if (strpos($url, self::PROTOCOL_HTTP) === false && strpos($url, self::PROTOCOL_HTTPS) === false) { $url = ($bSecureProtocol === false ? self::PROTOCOL_HTTP : self::PROTOCOL_HTTPS) . $url; } } return $url; }