/** * (non-PHPdoc) * @see Zend_Controller_Plugin_Abstract::preDispatch() */ public function preDispatch(Zend_Controller_Request_Abstract $request) { try { #Zend_Debug::dump($request->getParams()); #die(); $mdlRole = new Acl_Model_Role(); $auth = Zend_Auth::getInstance(); $acl = Zend_Registry::get('ZendACL'); if ($auth->hasIdentity()) { $identity = $auth->getIdentity(); $this->role = $mdlRole->find($identity->role_id)->current(); } else { $this->role = $mdlRole->find(3)->current(); } $mdlMenuItem = new menu_Model_Item(); $mdlMenu = new menu_Model_Menu(); $navLinks = array(); $nav = new Zend_Navigation($navLinks); $menuList = $mdlMenu->getByStatus(1); foreach ($menuList as $menu) { $options = array('id' => 'menu-' . $menu->id, 'label' => $menu->name, 'uri' => ''); $page = Zend_Navigation_Page::factory($options); $nav->addPage($page); $menuitemList = $mdlMenuItem->getItemsForNavigationByMenu($menu); foreach ($menuitemList as $menuItem) { if ($menuItem->parent_id == 0) { if ($menuItem->external == 1) { $this->addExternalPage($page, $menuItem); } else { $this->addInternalPage($page, $menuItem); } } else { $parent = $nav->findBy('id', 'mii-' . $menuItem->parent_id); if ($menuItem->external == 1) { $this->addExternalPage($parent, $menuItem); } else { $this->addInternalPage($parent, $menuItem); } } } } $this->addCurrentPageUnregistered($nav, $request); $page = $nav->findBy("id", "mii-" . $request->getParam("mid")); if ($page) { $page->setActive(true); } Zend_Registry::set('Zend_Navigation', $nav); #Zend_Debug::dump($nav->toArray()); #die(); } catch (Exception $e) { try { $writer = new Zend_Log_Writer_Stream(APPLICATION_LOG_PATH . 'plugins.log'); $logger = new Zend_Log($writer); $logger->log($e->getMessage(), Zend_Log::ERR); } catch (Exception $e) { } } }
/** * Publish action for index controller * @throws Exception * @return NULL * */ public function publishAction() { try { $translate = Zend_Registry::get('Zend_Translate'); $id = $this->getRequest()->getParam("id"); $mdlMenu = new menu_Model_Menu(); $menu = $mdlMenu->find($id)->current(); if (!$menu) { throw new Exception($translate->translate("LBL_ROW_NOT_FOUND")); } if ($menu->published == 1) { $menu->published = 0; $this->_helper->flashMessenger->addMessage(array('type' => 'info', 'header' => '', 'message' => $translate->translate("MENU_MENU_UNPUBLISHED_SUCCESSFULLY"))); } else { $menu->published = 1; $this->_helper->flashMessenger->addMessage(array('type' => 'info', 'header' => '', 'message' => $translate->translate("MENU_MENU_PUBLISHED_SUCCESSFULLY"))); } #$menu->published = ( $menu->published == 1 ) ? 0 : 1 ; $menu->save(); $this->redirect('menus'); } catch (Exception $e) { $this->_helper->flashMessenger->addMessage(array('type' => 'error', 'header' => '', 'message' => $e->getMessage())); $this->redirect('menus'); } return null; }
/** * Choose action for item controller * @throws Exception * @return NULL */ public function chooseAction() { // action body try { $translate = Zend_Registry::get('Zend_Translate'); $menuId = $this->getRequest()->getParam('menu', 0); $mdlMenu = new menu_Model_Menu(); $menu = $mdlMenu->find($menuId)->current(); if (!$menu) { throw new Exception($translate->translate("MENU_ROW_NOT_FOUND")); } $this->view->menu = $menu; $mdlResource = new Acl_Model_Resource(); $modules = $mdlResource->getModules(); $menus = array(); foreach ($modules as $module) { #echo APPLICATION_PATH.'/modules/'.$module->module.'<br>'; $menuFile = APPLICATION_PATH . '/modules/' . $module->module . '/menus.xml'; if (file_exists($menuFile)) { #echo "si en ".$module->module.'<br>'; $sxe = new SimpleXMLElement($menuFile, null, true); foreach ($sxe as $menuTemp) { #Zend_Debug::dump($widget); $menus[] = $menuTemp; } } # } $this->view->menuItemTypes = $menus; } catch (Exception $e) { $this->_helper->flashMessenger->addMessage(array('type' => 'error', 'header' => '', 'message' => $e->getMessage())); $this->redirect('menu-items/' . $menuId); } return; }
/** * update action for widget controller * @throws Exception */ public function updateAction() { try { $translate = Zend_Registry::get('Zend_Translate'); $id = $this->getRequest()->getParam('id', 0); $mdlWidget = new System_Model_Widget(); $widget = $mdlWidget->find($id)->current(); if (!$widget) { throw new Exception($translate->translate("LBL_ROW_NOT_FOUND")); } $mdlResource = new Acl_Model_Resource(); $resource = $mdlResource->find($widget->resource_id)->current(); $widgetFile = APPLICATION_PATH . '/modules/' . $resource->module . '/widgets.xml'; if (!file_exists($widgetFile)) { throw new Exception($translate->translate("SYSTEM_WIDGET_NOT_FOUND")); } $sxe = new SimpleXMLElement($widgetFile, null, true); $element = null; foreach ($sxe as $widgetElement) { if ($widgetElement['id'] == $widget->widget_id) { $element = $widgetElement; break; } } if (!$element) { throw new Exception($translate->translate("SYSTEM_WIDGET_ELEMENT_NOT_FOUND")); } #$frmWidget = strval($element->form); #$frmWidget = new $frmWidget(); $frmWidget = ucfirst(strtolower(strval($element->module))) . '_Form_Widgets'; $frmWidget = strtolower(strval($element->module)) == 'menu' ? 'menu_Form_Widgets' : $frmWidget; #$frmWidget = new $frmWidget( array('typeForm'=>'test') ); $frmWidget = new $frmWidget(array('widgetType' => strtolower(strval($element->widget_type)))); $hookXml = APPLICATION_PATH . '/configs/hooks.xml'; $sxeHook = new SimpleXMLElement($hookXml, null, true); $cbPosition = $frmWidget->getElement("position"); foreach ($sxeHook as $hook) { $cbPosition->addMultiOption($hook, $hook); } $mdlMenu = new menu_Model_Menu(); $mdlMI = new menu_Model_Item(); $menus = $mdlMenu->getMenus(); $cbMenuItem = $frmWidget->getElement('menuitem'); foreach ($menus as $menu) { $menuItemData = array(); $mdlMI->getMenuItemsForWidget(null, $menu, null, $menuItemData); $cbMIData[$menu->name] = $menuItemData; $cbMenuItem->addMultiOptions($cbMIData); } $frmWidget->setAction($this->_request->getBaseUrl() . "/system/widget/update"); $frmWidget->populate($widget->toArray()); $mdlWidgetDetail = new System_Model_Widgetdetail(); $renderForAll = $mdlWidgetDetail->isRenderForAll($widget); if ($renderForAll === false) { $rowsSelected = array(); $menuItems = $widget->findManyToManyRowset('menu_Model_Item', 'System_Model_Widgetdetail', 'Widget'); foreach ($menuItems as $menuItemSelected) { $rowsSelected[] = $menuItemSelected->id; } $frmWidget->populate(array('menuitem' => $rowsSelected)); $frmWidget->getElement('renderfor')->setValue(1); } else { $frmWidget->getElement('renderfor')->setValue(0); $frmWidget->getElement('menuitem')->setAttrib('disabled', true); } $params = Zend_Json::decode($widget->params); $frmWidget->populate($params); if ($this->getRequest()->isPost()) { if ($frmWidget->isValid($this->getRequest()->getParams())) { $defaultFormFields = array('id', 'wid', 'mod', 'position', 'title', 'published', 'menuitem', 'csrf_token', 'token', 'widget_id', 'showtitle'); $widget->title = $frmWidget->getElement('title')->getValue(); $widget->published = $frmWidget->getElement('published')->getValue(); $widget->position = $frmWidget->getElement('position')->getValue(); $widget->showtitle = $frmWidget->getElement('showtitle')->getValue(); $frmWidgetValues = $frmWidget->getValues(); $params = array(); foreach ($frmWidgetValues as $wvk => $wv) { if (!in_array($wvk, $defaultFormFields)) { #$params[] = $wvk.'='.$wv.''; $params[$wvk] = $wv; } } #$params = implode("\n", $params); #$widget->params = $params; $widget->params = Zend_Json::encode($params); #Zend_Debug::dump( $widget ); #die(); $widget->save(); $menuItemsWidget = $widget->findDependentRowset('System_Model_Widgetdetail', 'Widget'); foreach ($menuItemsWidget as $miw) { $miw->delete(); } if ($frmWidget->getElement('renderfor')->getValue() == 0) { $widgetDetail = $mdlWidgetDetail->createRow(); $widgetDetail->widget_id = $widget->id; $widgetDetail->menuitem_id = null; $widgetDetail->save(); } else { foreach ($frmWidget->getValue('menuitem') as $mi) { $widgetDetail = $mdlWidgetDetail->createRow(); $widgetDetail->widget_id = $widget->id; $widgetDetail->menuitem_id = $mi; $widgetDetail->save(); #Zend_Debug::dump($widgetDetail); } } #Zend_Debug::dump( $menuItemsWidget ); $this->_helper->flashMessenger->addMessage(array('type' => 'info', 'header' => '', 'message' => $translate->translate("SYSTEM_WIDGET_UPDATED_SUCCESSFULLY"))); $this->_helper->redirector("list", "widget", "system"); } } else { /*$fields = array(); foreach ( $frmWidget->getElements() as $wfelement ) $fields[] = $wfelement->getName(); $frmWidget->addDisplayGroup( $fields, 'form', array( 'legend' => $translate->translate("SYSTEM_UPDATE_WIDGET"), ) );*/ } $this->view->frmWidget = $frmWidget; $this->view->widget = $element; #Zend_Debug::dump($element); } catch (Exception $e) { $this->_helper->flashMessenger->addMessage(array('type' => 'error', 'header' => '', 'message' => $e->getMessage())); $this->_helper->redirector("list", "widget", "system"); } return; }
/** * Return items filter by widget * @param int $level * @param Zend_Db_Table_Row_Abstract $menu * @param Zend_Db_Table_Row_Abstract $menuItem * @param array $arrData */ public function getMenuItemsForWidget($level = 0, Zend_Db_Table_Row_Abstract $menu, Zend_Db_Table_Row_Abstract $menuItem = null, &$arrData) { if (intval($level) < 1) { $mdlMenu = new menu_Model_Menu(); $selectMenu = $mdlMenu->select()->where('IFNULL(parent_id,0)=?', 0, Zend_Db::INT_TYPE); $items = $menu->findDependentRowset('menu_Model_Item', 'Menu', $selectMenu); #Zend_Debug::dump($menu->toArray()); #Zend_Debug::dump($selectMenu->__toString()); #Zend_Debug::dump($items->toArray()); #die(); if ($items->count() > 0) { $level++; foreach ($items as $item) { $arrData[$item->id] = $item->title; $selectItem = $this->select()->where('parent_id=?', $item->id, Zend_Db::INT_TYPE); $subItems = $item->findDependentRowset('menu_Model_Item', 'MenuParent'); if ($subItems->count() > 0) { $this->getMenuItemsForWidget($level, $menu, $item, $arrData); } } } } else { $selectItem = $this->select()->where('parent_id=?', $menuItem->id, Zend_Db::INT_TYPE); $subItems = $menuItem->findDependentRowset('menu_Model_Item', 'MenuParent'); if ($subItems->count() > 0) { $level++; foreach ($subItems as $smi) { $prefix = str_pad("", $level - 1, "-"); $arrData[$smi->id] = $prefix . ' ' . $smi->title; $this->getMenuItemsForWidget($level, $menu, $smi, $arrData); } } } }
private function menubootstrap() { $cbMenu = $this->createElement("select", "menuId")->setOrder($this->order++)->setLabel("MENU")->setRequired(true); $mdlMenu = new menu_Model_Menu(); $menuList = $mdlMenu->getMenus(); foreach ($menuList as $menu) { $cbMenu->addMultiOption($menu->id, $menu->name); } $this->addElement($cbMenu); $cbDistribution = $this->createElement("select", "distribution")->setOrder($this->order++)->setLabel("LBL_DISTRIBUTION")->setRequired(true)->addMultioption('horizontal', $this->translator->translate("LBL_HORIZONTAL"))->addMultioption('vertical', $this->translator->translate("LBL_VERTICAL")); $this->addElement($cbDistribution); }