/** * @see Form::save() */ public function save() { parent::save(); $executor = AdminToolsFunctionExecution::getInstance(); $executor->setValues($this->values); $saveOptions = $this->getSaveOptions(); $inserts = ''; foreach ($saveOptions as $option) { if (!empty($inserts)) { $inserts .= ','; } $inserts .= "(" . $option['optionID'] . ", '" . escapeString($option['optionValue']) . "')"; } if (!empty($inserts)) { $sql = "INSERT INTO\twcf" . WCF_N . "_admin_tools_option\n\t\t\t\t\t\t(optionID, optionValue)\n\t\t\t\tVALUES \t\t" . $inserts . "\n\t\t\t\tON DUPLICATE KEY UPDATE optionValue = VALUES(optionValue)"; WCF::getDB()->sendQuery($sql); WCF::getCache()->clear(WCF_DIR . 'cache/', 'cache.admin_tools-option*'); } if ($this->functionID) { $executor->callFunction($this->functionID); foreach ($this->options as $superCategory) { foreach ($superCategory['categories'] as $functionCategory) { if ($functionCategory['functionID'] == $this->functionID) { $this->activeTabMenuItem = $superCategory['categoryName']; $this->activeSubTabMenuItem = $this->activeTabMenuItem . '-' . $functionCategory['categoryName']; } } } $returnMessages = WCF::getSession()->getVar('functionReturnMessage'); if (isset($returnMessages[$this->functionID])) { $functionMessage = $returnMessages[$this->functionID]; unset($returnMessages[$this->functionID]); WCF::getSession()->register('functionReturnMessage', $returnMessages); WCF::getTPL()->assign($functionMessage); } else { WCF::getTPL()->assign(array('success' => true)); } } else { WCF::getTPL()->assign(array('success' => true)); } }