{
$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)));
*/
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');
}
/**
]);
$existingRow = $statement->fetchArray();
+ if (!$existingRow) {
+ $existingRow = [];
+ }
}
if (!isset($newElementData['languageCategoryID']) && isset($newElementData['languageCategory'])) {
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;
$languageCategory->setAttribute('name', $languageCategoryName);
$languageCategory->appendChild($languageItem);
- $document->documentElement->appendChild($languageCategory);
+ $import->appendChild($languageCategory);
}
return $languageItem;
]);
}
- /**
- * @inheritDoc
- * @since 5.2
- */
- public function supportsDeleteInstruction()
- {
- return false;
- }
-
/**
* @inheritDoc
* @since 5.2