As well as an update server location a changelog xml file for an extension can be specified in an extension manifest.
This is a really useful facility as it shows the changelog for the current version in the extension management screen and also the changelog for a new update in the extension updates screen so you can check it before installing
This works fine but there is an annoying quirk. The update server file location can be specified on a separate line thus:
<updateservers>
<server>
https://my.very.long/url/which/i/put/on/a/separate/line/for/readability.xml
</server>
</updateservers>
which works fine as the spurious spaces before and after the url are stripped off when it is added to the database.
However when com_installer reads the changelog location from the manifest it doesn't save it in the database and it doesn't trim in so this:
<changelogurl>
https://my.very.long/url/which/i/put/on/a/separate/line/for/readability.xml
</changelogurl>
doesn't work as the spurious spaces around the url cause $changelog->loadFromXml($changelogurl); to return an empty array as it can't find the file. It displays just a header line with no indication what is wrong.
So you have to put the <changelogurl>https://all.on/one/line.xml</changelogurl> which is okay if you know/remember but inconsistent with the updateserver presentation and a hit on the readability of the manifest xml file
The quickest fix is to add $changelogurl = trim($changelogurl); at about line 436 in administrator/components/com_installer/src/Model/ManageModel.php in the loadchangelog() function.
But Changelog::loadFromXml() might be called from elsewhere (eg if you want to display the full changelog in your extension somewhere - perhaps in the update script or an info page - and use the Changelog object to parse it so a better fix would be to make the loadFromXml() function clean the url it is passed.
As I said the changelog facility is really useful - you can keep your changelog on GitHub outside the main source for easy management - but the urls do get a bit long and it would be nice to make the manifest human readable as well.
| Labels |
Removed:
?
|
||
| Labels |
Added:
No Code Attached Yet
|
||
Great if you could - I simply don't have time to delve into the innards of joomla, but it feels like it should be quite easy to just trim the url in loadFromXml() once you find where that is. Its one of those little annoyances/inconsistencies that tend not to get fixed because once you discover it you find how to work around it and then forget it, but it wastes time for everyone who stumbles across it.
Thanks.
@chmst Hi, I would like to work on this issue. I’ll investigate the problem with the whitespace handling and submit a fix if appropriate.