public function LoadMenu($params = null) { $current_url = \Av\DispatcherController::GetCurrentUrl()->GetCurrentUrlLocale(); $oMenuMapper = new MenuModel(); $this->_menu_collection = $oMenuMapper->LoadMenu($params); if ($this->_menu_collection instanceof \Av\Component\Menu\MenuCollectionContainer) { $this->_menu_collection_array = array(); foreach ($this->_menu_collection->GetCollection() as $tag => $menu_x_y) { foreach ($menu_x_y as $x => $menu_y) { foreach ($menu_y as $y => $oMenu) { if ($oMenu instanceof \Av\Component\Menu\MenuContainer) { /** * 1. check if selected */ $currentRes = $oMenu->GetMenuRes(array(\Av\Component\Menu\MenuContainer::TYPE => self::TYPE_LINK)); $bSelected = false; if ($currentRes instanceof \Av\Res\ResContainer) { $value = $currentRes->GetResValue(); $bSelected = $value == $current_url; } $oMenu->SetSelected(array(self::MENU_SELECTED => $bSelected)); /** * 2. build if dynamic */ if (($oMenuDynamic = $oMenu->GetMenuDynamic()) instanceof \Av\Component\Menu\MenuClassMapContainer) { $dynamic_class = $oMenuDynamic->GetMenuClassName(); $dynamic_method = $oMenuDynamic->GetMenuMethodName(); $dynamicparams = $oMenuDynamic->GetMenuMethodParams(); if ($dynamic_class !== false && $dynamic_method !== false) { if (PHP_MAJOR_VERSION <= 5 && PHP_MINOR_VERSION < 4) { $oClass = new $dynamic_class($oMenu); $oMenuDinamicCollection = $oClass->{$dynamic_method}($dynamicparams); } else { $oMenuDinamicCollection = (new $dynamic_class($oMenu))->{$dynamic_method}($dynamicparams); } if ($oMenuDinamicCollection !== false) { $this->_menu_collection->ReplaceInCollection($tag, $x, $y, $oMenuDinamicCollection); } } } /* * 3. fill menu data as array */ $this->_menu_collection_array[$tag][$x][$y] = self::ResourceAsArray($oMenu); } } } } } // $this->AddDebugAsObject($this->_menu_collection_array, __METHOD__ . " # " . __LINE__ . "Menu Array: "); }
public function GetMenu($param = null) { $arrLocale = \Av\Localization\LocalizationController::GetLocale()->GetMoreLanguages(); $base_url = \Av\DispatcherController::GetCurrentUrl()->GetCurrentUrlNoLocale(); $base_url_locale = \Av\DispatcherController::GetCurrentUrl()->GetCurrentUrlLocale(); $poz_x = $this->GetPozX(); $poz_y = $this->GetPozY(); $name = $this->GetPozName(); $name_space = $this->GetPozNamespace(); $oLanguageMenuCollaction = new \Av\Component\Menu\MenuCollectionContainer(); foreach ($arrLocale as $country_id => $languages) { foreach ($languages as $language_id => $language) { // $this->AddDebug(__METHOD__ . " #" .__LINE__ . " locale is :" . print_r($language,true)); /* * create base menu item */ $oLanguageMenu = new MenuContainer(array(MenuContainer::TAG => $name_space, MenuContainer::NAME => $name . "_" . $country_id . "_" . $language_id, MenuContainer::POS_X => $poz_x, MenuContainer::POS_Y => $poz_y)); /* * add text resource (lable) to menu item */ $oLanguageMenu->SetMenuRes(array(ResContainer::TYPE => 'text', ResContainer::VALUE => $language[LocalizationLocaleModel::COUNTRY_NAME] . " " . $language[LocalizationLocaleModel::LANGUAGE_NAME_SHORT], ResContainer::LOCALE => $language[LocalizationLocaleModel::LOCALE])); /* * add link resource to menu item */ $language_selection_url = DIRECTORY_SEPARATOR . $language[LocalizationLocaleModel::COUNTRY_ID] . DIRECTORY_SEPARATOR . $language[LocalizationLocaleModel::LANGUAGE_ID] . $base_url; $oLanguageMenu->SetMenuRes(array(ResContainer::TYPE => 'link', ResContainer::VALUE => $language_selection_url, ResContainer::LOCALE => $language[LocalizationLocaleModel::LOCALE])); $oLanguageMenu->SetSelected(array(MenuContainer::MENU_SELECTED => $language_selection_url == $base_url_locale)); /* * set "selected" is it is */ $oLanguageMenuCollaction->AddToCollection($name_space, $poz_x, $poz_y, $oLanguageMenu); $poz_y++; } } // $this->AddDebug(__METHOD__ . " #" .__LINE__ . " Base URL:" . print_r($base_url,true)); // $this->AddDebug(__METHOD__ . " #" .__LINE__ . " Base URL :" . print_r($base_url_locale,true)); // $this->AddDebug(__METHOD__ . " #" .__LINE__ . " Language Collection:" . print_r($oLanguageMenuCollaction,true)); return $oLanguageMenuCollaction; }
/** * call http://dev.avftest.com/test/redirect/redirect-other-test * will redirect to * http://dev.avftest.com/authorization/signup/google-plus?test=kuku&othr_test=mumu */ public function RedirectOtherTestAction() { $params_redirect = array(\Av\DispatcherController::REDIRECT_URL => "/authorization/signup/google-plus", \Av\DispatcherController::REDIRECT_PARAMETERS => array('test' => 'kuku', 'othr_test' => 'mumu')); \Av\DispatcherController::Redirect($params_redirect); }