public function createAction() { $this->view->name = $name = $this->_getParam('name'); // Get list of menus $menus = $this->_menus; // Check if selected menu is in list $selectedMenu = $menus->getRowMatching('name', $name); if (null === $selectedMenu) { throw new Core_Model_Exception('Invalid menu name'); } $this->view->selectedMenu = $selectedMenu; // Get form $this->view->form = $form = new Core_Form_Admin_Menu_ItemCreate(); // Check stuff if (!$this->getRequest()->isPost()) { return; } if (!$form->isValid($this->getRequest()->getPost())) { return; } // Save $values = $form->getValues(); $label = $values['label']; unset($values['label']); $menuItemsTable = Engine_Api::_()->getDbtable('menuItems', 'core'); $menuItem = $menuItemsTable->createRow(); $menuItem->label = $label; $menuItem->params = $values; $menuItem->menu = $name; $menuItem->module = 'core'; // Need to do this to prevent it from being hidden $menuItem->plugin = ''; $menuItem->submenu = ''; $menuItem->custom = 1; $menuItem->save(); $menuItem->name = 'custom_' . sprintf('%d', $menuItem->id); $menuItem->save(); $this->view->status = true; $this->view->form = null; }