/** * @see \wcf\form\IForm::save() */ public function save() { parent::save(); $this->objectAction = new PageMenuItemAction(array(), 'create', array('data' => array_merge($this->additionalFields, array('isDisabled' => $this->isDisabled ? 1 : 0, 'menuItem' => $this->pageMenuItem, 'menuItemController' => $this->menuItemController, 'menuItemLink' => $this->menuItemController ? $this->menuItemParameters : $this->menuItemLink, 'menuPosition' => $this->menuPosition, 'parentMenuItem' => $this->parentMenuItem, 'showOrder' => $this->showOrder, 'menuItem' => StringUtil::getRandomID())))); $this->objectAction->executeAction(); $returnValues = $this->objectAction->getReturnValues(); $menuItem = $returnValues['returnValues']; $data = array(); if (!I18nHandler::getInstance()->isPlainValue('menuItemLink')) { I18nHandler::getInstance()->save('menuItemLink', 'wcf.page.menuItemLink' . $menuItem->menuItemID, 'wcf.page'); $data['menuItemLink'] = 'wcf.page.menuItemLink' . $menuItem->menuItemID; } // save menu item I18nHandler::getInstance()->save('pageMenuItem', 'wcf.page.menuItem' . $menuItem->menuItemID, 'wcf.page'); $data['menuItem'] = 'wcf.page.menuItem' . $menuItem->menuItemID; // update i18n values $menuItemEditor = new PageMenuItemEditor($menuItem); $menuItemEditor->update($data); PageMenuItemEditor::resetCache(); // call saved event $this->saved(); // show success WCF::getTPL()->assign('success', true); // reset variables $this->isDisabled = $this->isInternalLink = false; $this->menuPosition = 'header'; $this->menuItemController = $this->menuItemLink = $this->pageMenuItem = $this->parentMenuItem = $this->menuItemParameters = ''; $this->showOrder = 0; I18nHandler::getInstance()->reset(); // reload parent menu items if ($menuItem->menuPosition == 'header' && $menuItem->parentMenuItem == '') { $this->readAvailableParentMenuItems(); } }