From: Matthias Schmidt Date: Mon, 14 Jun 2021 05:16:40 +0000 (+0200) Subject: Update language PIP GUI to new file structure X-Git-Tag: 5.5.0_Alpha_1~657 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=1dc61f74ee1d4079633ec9e67add7bca19f9d793;p=GitHub%2FWoltLab%2FWCF.git Update language PIP GUI to new file structure --- diff --git a/wcfsetup/install/files/lib/system/devtools/pip/TXmlGuiPackageInstallationPlugin.class.php b/wcfsetup/install/files/lib/system/devtools/pip/TXmlGuiPackageInstallationPlugin.class.php index 2542e7229c..9ed0952041 100644 --- a/wcfsetup/install/files/lib/system/devtools/pip/TXmlGuiPackageInstallationPlugin.class.php +++ b/wcfsetup/install/files/lib/system/devtools/pip/TXmlGuiPackageInstallationPlugin.class.php @@ -54,12 +54,11 @@ trait TXmlGuiPackageInstallationPlugin { $document = $element->ownerDocument; - $data = $document->getElementsByTagName('data')->item(0); - $delete = $data->getElementsByTagName('delete')->item(0); + $delete = $document->documentElement->getElementsByTagName('delete')->item(0); if ($delete === null) { $delete = $document->createElement('delete'); - $data->appendChild($delete); + $document->documentElement->appendChild($delete); } $delete->appendChild($document->importNode($this->prepareDeleteXmlElement($element))); diff --git a/wcfsetup/install/files/lib/system/package/plugin/LanguagePackageInstallationPlugin.class.php b/wcfsetup/install/files/lib/system/package/plugin/LanguagePackageInstallationPlugin.class.php index 6b2bd45347..3870da6b82 100644 --- a/wcfsetup/install/files/lib/system/package/plugin/LanguagePackageInstallationPlugin.class.php +++ b/wcfsetup/install/files/lib/system/package/plugin/LanguagePackageInstallationPlugin.class.php @@ -628,7 +628,7 @@ class LanguagePackageInstallationPlugin extends AbstractXMLPackageInstallationPl */ protected function getImportElements(\DOMXPath $xpath) { - return $xpath->query('/ns:language/ns:category/ns:item'); + return $xpath->query('/ns:language/ns:import/ns:category/ns:item'); } /** @@ -720,6 +720,9 @@ XML; ]); $existingRow = $statement->fetchArray(); + if (!$existingRow) { + $existingRow = []; + } } if (!isset($newElementData['languageCategoryID']) && isset($newElementData['languageCategory'])) { @@ -817,8 +820,15 @@ XML; throw new \LogicException("Unknown language category mode '{$data['languageCategoryIDMode']}'."); } + /** @var \DOMElement $import */ + $import = $document->getElementsByTagName('import')->item(0); + if ($import === null) { + $import = $document->createElement('import'); + DOMUtil::prepend($import, $document->documentElement); + } + /** @var \DOMElement $languageCategory */ - foreach ($document->documentElement->childNodes as $languageCategory) { + foreach ($import->getElementsByTagName('category') as $languageCategory) { if ($languageCategory instanceof \DOMElement && $languageCategory->getAttribute('name') === $languageCategoryName) { $languageCategory->appendChild($languageItem); break; @@ -830,7 +840,7 @@ XML; $languageCategory->setAttribute('name', $languageCategoryName); $languageCategory->appendChild($languageItem); - $document->documentElement->appendChild($languageCategory); + $import->appendChild($languageCategory); } return $languageItem; @@ -882,15 +892,6 @@ XML; ]); } - /** - * @inheritDoc - * @since 5.2 - */ - public function supportsDeleteInstruction() - { - return false; - } - /** * @inheritDoc * @since 5.2