From 734a78834055a559aa0b02e30ad9abe75ed95556 Mon Sep 17 00:00:00 2001 From: Pierre Goiffon Date: Tue, 1 Aug 2023 10:52:56 +0200 Subject: [PATCH] =?UTF-8?q?N=C2=B06562=20Fix=20DOMNode->textContent=20writ?= =?UTF-8?q?e=20This=20attribute=20is=20read=20only=20Causes=20layout=20iss?= =?UTF-8?q?ues=20on=20PHP=208.1.21=20and=208.2.8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup/itopdesignformat.class.inc.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/setup/itopdesignformat.class.inc.php b/setup/itopdesignformat.class.inc.php index 925b5a090..6bb760848 100644 --- a/setup/itopdesignformat.class.inc.php +++ b/setup/itopdesignformat.class.inc.php @@ -798,7 +798,10 @@ class iTopDesignFormat $oNodeList = $oXPath->query("/itop_design/classes//class/fields/field/values/value"); foreach ($oNodeList as $oNode) { $sCode = $oNode->textContent; - $oNode->textContent = ''; + // N°6562 textContent is readonly, see https://www.php.net/manual/en/class.domnode.php#95545 +// $oNode->textContent = ''; + // N°6562 to update text node content we must use the node methods ! + $oNode->removeChild($oNode->firstChild); $oCodeNode = $oNode->ownerDocument->createElement("code", $sCode); $oNode->appendChild($oCodeNode); } @@ -888,7 +891,12 @@ class iTopDesignFormat if ($oStyleNode) { $this->DeleteNode($oStyleNode); } - $oNode->textContent = $sCode; + + // N°6562 textContent is readonly, see https://www.php.net/manual/en/class.domnode.php#95545 +// $oNode->textContent = $sCode; + // N°6562 to update text node content we must use the node methods ! + $oTextContentNode = new DOMText($sCode); + $oNode->appendChild($oTextContentNode); } } // - Style