diff --git a/administrator/components/com_installer/src/Model/ManageModel.php b/administrator/components/com_installer/src/Model/ManageModel.php index d6a5932d8ec6c..41f62981ba47d 100644 --- a/administrator/components/com_installer/src/Model/ManageModel.php +++ b/administrator/components/com_installer/src/Model/ManageModel.php @@ -444,14 +444,12 @@ public function loadChangelog($eid, $source) 'note' => [], ]; - array_walk( - $entries, - function (&$value, $name) use ($changelog) { - if ($field = $changelog->get($name)) { - $value = $changelog->get($name)->data; - } + foreach (array_keys($entries) as $name) { + $field = $changelog->get($name); + if ($field) { + $entries[$name] = $changelog->get($name)->data; } - ); + } $layout = new FileLayout('joomla.installer.changelog'); $output = $layout->render($entries); diff --git a/libraries/src/Changelog/Changelog.php b/libraries/src/Changelog/Changelog.php index 268f1b12e5463..93008a661b677 100644 --- a/libraries/src/Changelog/Changelog.php +++ b/libraries/src/Changelog/Changelog.php @@ -219,6 +219,11 @@ public function startElement($parser, $name, $attrs = []) $this->$tag->data = ''; } + // Skip technical elements + if ($name === 'CHANGELOGS' || $name === 'CHANGELOG' || $name === 'ITEM') { + return; + } + $name = strtolower($name); if (!isset($this->currentChangelog->$name)) {