public function addsectionAction() { $menu = $this->_modelMenu->getMenu($this->getParam('menu_id')); $this->view->menu_id = $menu->menu_id; if ('router' == $menu->type) { $form = new Zetta_Form(Zend_Registry::get('config')->Menu->formSectionRouter); $item_id = $this->view->item_id = $this->getParam('item_id'); $editRouteData = $this->_modelMenu->getSection($item_id, $menu->menu_id); $form->setDefaults($editRouteData); if (!sizeof($_POST) || !$form->isValid($_POST)) { $this->view->form = $form; } else { if ((!$form->getValue('name') || $form->getValue('name') == $editRouteData['name_route']) && intval($form->getValue('disable')) == 0) { $this->_modelMenu->deleteItem($editRouteData['item_id']); } else { $arrayData = array('menu_id' => $menu->menu_id, 'parent_id' => $pId = intval($form->getValue('parent_id')) ? $pId : new Zend_Db_Expr('NULL'), 'name' => !$form->getValue('name') || $form->getValue('name') == $editRouteData['name_route'] ? new Zend_Db_Expr('NULL') : $form->getValue('name'), 'type' => 'router', 'disable' => intval($form->getValue('disable')), 'route_id' => $item_id); if (array_key_exists('item_id', $editRouteData) && $editRouteData['item_id'] != $item_id) { $this->_modelMenu->updateSection($arrayData, $this->_modelMenu->getAdapter()->quoteInto('item_id = ?', $editRouteData['item_id'])); } else { $this->_modelMenu->insertSection($arrayData); } } $this->renderScript('admin/addItemComplete.ajax.phtml'); } } else { $form = new Zetta_Form(Zend_Registry::get('config')->Menu->formSection); $menuIdElement = $form->getElement('route_id'); $menuIdElement->addMultiOptions(Modules_Router_Model_Router::getInstance()->getRoutesTreeHash()); $arrayParents = array('0' => '') + $this->_modelMenu->getTreeHash($menu->menu_id); $parentIdElement = $form->getElement('parent_id'); $parentIdElement->addMultiOptions($arrayParents); if ($pId = $this->getParam('parent_id')) { $parentIdElement->setValue($pId); } if ($item_id = $this->getParam('item_id')) { $this->view->item_id = $item_id; $editRouteData = $this->_modelMenu->getSection($item_id, $menu->menu_id); $form->setDefaults($editRouteData); } if (!sizeof($_POST) || !$form->isValid($_POST)) { $this->view->form = $form; } else { $arrayData = array('menu_id' => intval($this->getParam('menu_id')), 'parent_id' => ($pId = intval($form->getValue('parent_id'))) ? $pId : new Zend_Db_Expr('NULL'), 'name' => $form->getValue('name'), 'type' => $form->getValue('type_section'), 'disable' => intval($form->getValue('disable')), 'route_id' => new Zend_Db_Expr('NULL'), 'external_link' => new Zend_Db_Expr('NULL')); if ($arrayData['type'] == 'router') { $arrayData['route_id'] = intval($form->getValue('route_id')); } else { $arrayData['external_link'] = $form->getValue('external_link'); } if ($item_id) { $this->_modelMenu->updateSection($arrayData, $this->_modelMenu->getAdapter()->quoteInto('item_id = ?', $item_id)); } else { $this->_modelMenu->insertSection($arrayData); } $this->renderScript('admin/addItemComplete.ajax.phtml'); } } }