コード例 #1
0
 /**
  * @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();
     }
 }