/** * Updates this help item. * * @param string $name * @param string $text * @param string $parentItem * @param string $refererPattern * @param integer $showOrder * @param boolean $isDisabled * @param integer $languageID * @param integer $packageID */ public function update($name, $text = '', $parentItem = '', $refererPattern = '', $showOrder = 0, $isDisabled = 0, $languageID = 0, $packageID = PACKAGE_ID) { if ($parentItem == $this->helpItem) { $parentItem = $this->parentHelpItem; } // update show order if ($parentItem == $this->parentHelpItem) { if ($this->showOrder != $showOrder) { if ($showOrder < $this->showOrder) { $sql = "UPDATE\twcf" . WCF_N . "_help_item\n\t\t\t\t\t\tSET \tshowOrder = showOrder + 1\n\t\t\t\t\t\tWHERE \tshowOrder >= " . $showOrder . "\n\t\t\t\t\t\t\tAND showOrder < " . $this->showOrder . "\n\t\t\t\t\t\t\tAND parentHelpItem = '" . escapeString($parentItem) . "'"; WCF::getDB()->sendQuery($sql); } else { if ($showOrder > $this->showOrder) { $sql = "UPDATE\twcf" . WCF_N . "_help_item\n\t\t\t\t\t\tSET\tshowOrder = showOrder - 1\n\t\t\t\t\t\tWHERE\tshowOrder <= " . $showOrder . "\n\t\t\t\t\t\t\tAND showOrder > " . $this->showOrder . "\n\t\t\t\t\t\t\tAND parentHelpItem = '" . escapeString($parentItem) . "'"; WCF::getDB()->sendQuery($sql); } } } } else { $sql = "UPDATE\twcf" . WCF_N . "_help_item\n\t\t\t\tSET \tshowOrder = showOrder - 1\n\t\t\t\tWHERE \tshowOrder >= " . $this->showOrder . "\n\t\t\t\t\tAND parentHelpItem = '" . escapeString($this->parentHelpItem) . "'"; WCF::getDB()->sendQuery($sql); $sql = "UPDATE \twcf" . WCF_N . "_help_item\n\t\t\t\tSET \tshowOrder = showOrder + 1\n\t\t\t\tWHERE \tshowOrder >= " . $showOrder . "\n\t\t\t\t\tAND parentHelpItem = '" . escapeString($parentItem) . "'"; WCF::getDB()->sendQuery($sql); } // Update $sql = "UPDATE\twcf" . WCF_N . "_help_item\n\t\t\tSET\t" . ($languageID == 0 ? "helpItem = '" . escapeString($name) . "'," : '') . "\n\t\t\t\tparentHelpItem = '" . escapeString($parentItem) . "',\n\t\t\t\trefererPattern = '" . escapeString($refererPattern) . "',\n\t\t\t\tshowOrder = " . $showOrder . ",\n\t\t\t\tisDisabled = " . $isDisabled . "\n\t\t\tWHERE \thelpItemID = " . $this->helpItemID . ";"; WCF::getDB()->sendQuery($sql); if ($languageID != 0) { // save language variables $language = new LanguageEditor($languageID); $language->updateItems(array('wcf.help.item.' . $this->helpItem => $name, 'wcf.help.item.' . $this->helpItem . '.description' => $text), 0, $this->packageID, array('wcf.help.item.' . $this->helpItem => 1, 'wcf.help.item.' . $this->helpItem . '.description' => 1)); LanguageEditor::deleteLanguageFiles($languageID, 'wcf.help.item'); $language->deleteCompiledTemplates(); } }