The <dlid> tag in component manifests is not being parsed properly in Joomla 5.x, preventing the download key field from appearing in the Extensions → Update Sites interface, even when the database is correctly configured.
When a component manifest includes a properly formatted <dlid> tag, the Extensions → Update Sites interface should display a "Download Key" field for premium component updates, allowing administrators to enter their license key. See #26744 "When you edit an Update Site, the Download Key field only displays for extensions which support it (those that have a dlid attribute in their XML manifest file."
The download key field does not appear in Extensions → Update Sites, despite:
<dlid> tag in manifestSteps to Reproduce
<?xml version="1.0" encoding="UTF-8"?>
<extension type="component" method="upgrade">
<!-- ... other manifest elements ... -->
<!-- Download Key Support -->
<dlid prefix="dlid=" suffix="&download=com_test.zip"/>
</extension>
SELECT update_site_id, name, extra_query
FROM #__update_sites
WHERE name LIKE '%Test Component%';
Result: extra_query field may be empty or not properly initialized from <dlid> tag.
UPDATE #__update_sites
SET extra_query = 'dlid='
WHERE name LIKE '%Test Component%';
Result: Database now contains correct value, but UI field still doesn't appear.
Related Documentation
Impact
Suggested Fix Areas
<dlid> tag processing during component installationPlease contact me, if I can be of more help or I am missing something obvious. I am implementing a workaround by processing the key myself as a component option parameter but it would be nicer not to do this and rely entirely upon Joomla functionality.
Angus
| Title |
|
||||||
| Labels |
Added:
No Code Attached Yet
|
||||||
Thanks for replying. I tested that. I believe the suffix is only an example in that documentation to show the kind of structure you can add to the download link, for your download system.
I believe that the prefix is what should enable the field to be visible. I don't know for sure.
| Status | New | ⇒ | Closed |
| Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2025-09-24 13:36:30 |
| Closed_By | ⇒ | multizone-uk |
This issue has been completely resolved through a better installation script and can be closed.
By way of explanation my installation scripts were not properly creating update site database records and extension mappings, and InstallerHelper::getInstallationXML() seems to expect component manifests named without the com_ prefix (e.g., test.xml) while Joomla installs them with the prefix (e.g., com_test.xml). This caused the helper to return null when looking for my <dlid> tags, preventing components from being recognised as supporting download keys.
My solution was to enhance my installation scripts to create proper update site records with extension mappings and generate manifest aliases (copying com_component.xml to component.xml) for InstallerHelper compatibility.
Verification: Download key fields now appear correctly in Extensions.
Im open to better ways to do this.
shouldn't the tag look like this
<dlid prefix="dlid=" suffix="&dummy=my.zip"/>from https://manual.joomla.org/docs/building-extensions/install-update/installation/manifest/#download-keysinstead of yours
<dlid prefix="dlid=" suffix="&download=com_test.zip"/>