public function showAction() { $request = $this->getRequest(); $menuId = $this->getParam('menu_id'); $menuItems = Modules_Menu_Services_Item::getTree($menuId); $this->view->menuItems = $menuItems; }
public function editAction() { $request = $this->getRequest(); $this->view->lang = $request->getParam('lang'); $menuId = $request->getParam('menu_id'); $menu = Modules_Menu_Services_Menu::getById($menuId); if (null == $menu) { Modules_Core_Services_Exception::error('DATA_NOT_FOUND'); } $menuData = $menu; /** * Get menu items */ $items = Modules_Menu_Services_Item::getTree($menuId); $menuData['items'] = $items; $this->view->menuData = $menuData; /** * Get source item */ $sourceMenu = Modules_Menu_Services_Menu::getSource($menu); $this->view->sourceMenu = $sourceMenu; if ($request->isPost()) { $user = Gio_Core_Session::getUser(); $menuData = $request->getPost('menu'); $json = new Services_JSON(); $items = $menuData['items'] ? (array) $json->decode($menuData['items']) : array(); $menuData = Modules_Menu_Services_Menu::validate($menuData); if (isset($menuData['messages_error']) && $menuData['messages_error']) { $this->view->errorMessages = $menuData['messages']; $menuData['items'] = $items; $this->view->menuData = $menuData; return; } $menu = array('menu_id' => $menuId, 'name' => $this->view->STRING->escape($menuData['name']), 'description' => $this->view->STRING->escape($menuData['description']), 'language' => $this->view->STRING->escape($menuData['language'])); $sourceItem = isset($menuData['source_item']) ? $menuData['source_item'] : null; $id = Modules_Menu_Services_Menu::update($menu, $items, $sourceItem); Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('menu_edit_success')); $this->redirect($this->view->url('menu_menu_edit', $menu)); } }
public static function delete($menuId) { $conn = Gio_Db_Connection::getConnection(); $dao = new Modules_Menu_Models_Mysql_Menu(); $dao->setConnection($conn); /** * Delete all menu item */ Modules_Menu_Services_Item::delete($menuId); /** * Delete menu translation */ Modules_Core_Services_Translation::delete($menuId, get_parent_class($dao)); /** * Delete menu */ return $dao->delete($menuId); }