Example #1
0
 public function __construct($options = null)
 {
     $oModelVNavigationMenu = new Admin_Model_VNavigationMenu();
     $oModelVNavigationSubmenu = new Admin_Model_VNavigationSubmenu();
     $oModelVNavigationSubsubmenu = new Admin_Model_VNavigationSubsubmenu();
     $oModelSite = new Admin_Model_Site();
     $this->_aAllLang = array("lang_pl" => "język polski", "lang_en" => "język angielski");
     $sModule = "default";
     $aMenu = $oModelVNavigationMenu->getSiteMenu($sModule)->toArray();
     foreach ($aMenu as $nKey => $aMenuValue) {
         $sMenuLabel = $aMenuValue["label"];
         $aSubmenu = null;
         $aSubmenu = $oModelVNavigationSubmenu->getSiteMenu($aMenuValue["id"])->toArray();
         if ($aSubmenu) {
             foreach ($aSubmenu as $aSubmenuValue) {
                 $sSubmenuLabel = $aSubmenuValue["label"];
                 $aSubmenuValue["label"] = $sMenuLabel . " / " . $sSubmenuLabel;
                 array_push($aMenu, $aSubmenuValue);
                 $aSubsubmenu = $oModelVNavigationSubsubmenu->getSiteMenu($aSubmenuValue["id"])->toArray();
                 if ($aSubsubmenu) {
                     foreach ($aSubsubmenu as $aSubsubmenuValue) {
                         $sSubsubmenuLabel = $aSubsubmenuValue["label"];
                         $aSubsubmenuValue["label"] = $sMenuLabel . " / " . $sSubmenuLabel . " / " . $sSubsubmenuLabel;
                         array_push($aMenu, $aSubsubmenuValue);
                     }
                 }
             }
         }
     }
     foreach ($aMenu as $nKey => $aValue) {
         if ($oModelSite->findSiteId($aValue["id"])) {
             $this->_aAllMenu[$aValue["id"]] = $aValue["label"];
         }
     }
     parent::__construct($options);
 }
 public function subsubmenuAction()
 {
     $oFormNavigationSubsubmenu = new Admin_Form_NavigationSubsubmenu();
     $oModelNavigationModule = new Admin_Model_NavigationModule();
     $oModelNavigationOption = new Admin_Model_NavigationOption();
     $oModelNavigationSubsubmenu = new Admin_Model_NavigationSubsubmenu();
     $oModelNavigationOptionUserRole = new Admin_Model_NavigationOptionUserRole();
     $oModelVSiteLayout = new Admin_Model_VSiteLayout();
     $oModelSite = new Admin_Model_Site();
     $oSite = new AppCms2_Controller_Plugin_FormLayoutAbstract();
     if ($this->_request->isPost()) {
         $aPostData = $this->_request->getPost();
         if ($oFormNavigationSubsubmenu->isValid($aPostData)) {
             $nNavigationSubsubmenuId = (int) $aPostData["navigation_subsubmenu_edit_id"];
             $aUserRole = $aPostData["user_role"];
             if ($nNavigationSubsubmenuId != 0) {
                 $nNavigationOptionId = $oModelNavigationSubsubmenu->edit($nNavigationSubsubmenuId, $aPostData);
                 $oModelNavigationOptionUserRole->deleteUserRole($nNavigationOptionId);
                 if (isset($aUserRole) && isset($nNavigationOptionId)) {
                     foreach ($aUserRole as $nRoleId) {
                         $oModelNavigationOptionUserRole->add($nNavigationOptionId, $nRoleId);
                     }
                 }
                 $oRow = $oModelNavigationOption->getRow($nNavigationOptionId);
                 $sLayoutName = $oModelVSiteLayout->getSiteLayoutId($nNavigationSubsubmenuId)->layout_name;
                 if ($oRow->navigation_module_id == 2 && $sLayoutName != $aPostData["layout_name"]) {
                     $aPostData["menu_id"] = $nNavigationSubsubmenuId;
                     $sClassName = $oSite->getClassName($aPostData["layout_name"]);
                     if (isset($sClassName)) {
                         $oObjectReflection = new ReflectionClass($sClassName);
                         $oFormInstance = $oObjectReflection->newInstanceArgs();
                         $aSiteFileds = $oFormInstance->getSiteFields();
                         $oModelSite->newSite($aPostData, $aSiteFileds);
                     }
                 }
                 $oFormNavigationSubsubmenu->clearForm();
             } else {
                 $nNavigationOptionId = $oModelNavigationSubsubmenu->add($aPostData);
                 if (isset($aUserRole) && isset($nNavigationOptionId)) {
                     foreach ($aUserRole as $nRoleId) {
                         $oModelNavigationOptionUserRole->add($nNavigationOptionId, $nRoleId);
                     }
                 }
                 $oRow = $oModelNavigationOption->getRow($nNavigationOptionId);
                 if ($oRow->navigation_module_id == 2) {
                     $nNavigationSubmenuId = $oModelNavigationSubsubmenu->findSubsubmenuId($nNavigationOptionId);
                     $aPostData["menu_id"] = $nNavigationSubmenuId;
                     $sClassName = $oSite->getClassName($aPostData["layout_name"]);
                     if (isset($sClassName)) {
                         $oObjectReflection = new ReflectionClass($sClassName);
                         $oFormInstance = $oObjectReflection->newInstanceArgs();
                         $aSiteFileds = $oFormInstance->getSiteFields();
                         $oModelSite->newSite($aPostData, $aSiteFileds);
                     }
                 }
                 $oFormNavigationSubsubmenu->clearForm();
             }
         }
     }
     $aAllModule = $oModelNavigationModule->getAll()->toArray();
     if (count($aAllModule)) {
         foreach ($aAllModule as $aValue) {
             $aNavigation[$aValue["value"]] = $this->prepareNavigation($aValue["value"]);
         }
     }
     $this->view->oFormNavigationElement = $oFormNavigationSubsubmenu;
     $this->view->aNavigation = $aNavigation;
 }