User tests: Successful: Unsuccessful:
This change modifies ModuleHelper to process site modules when running in ApiApplication context. Currently the /content/articles/{id} Web Services endpoint prepares the article content (e.g. {loadmodule} tags), but since ModuleHelper filters by the Client ID, no modules are rendered under ApiApplication.
This is a very basic way to address this, open to going about it a different way if there are implications I didn't think of!
Retrieve an article with modules rendered (assuming article ID 1 uses a load module tag of some sort)
GET /api/index.php/v1/content/articles/1
Despite the endpoint preparing article content, ModuleHelper filters modules by Client ID, so no modules are rendered under ApiApplication.
ModuleHelper serves site modules when under ApiApplication, resulting in modules being rendered in article content.
Please select:
Documentation link for docs.joomla.org:
No documentation changes for docs.joomla.org needed
Pull Request link for manual.joomla.org:
No documentation changes for manual.joomla.org needed
| Status | New | ⇒ | Pending |
| Category | ⇒ | Libraries |
| Labels |
Added:
PR-5.4-dev
|
||
| Category | Libraries | ⇒ | Repository Administration com_admin SQL |
| Title |
|
||||||
| Category | Repository Administration com_admin SQL | ⇒ | Libraries |
I have tested this item ✅ successfully on a7b8c98
I have tested this item ✅ successfully
Environment: Windows/XAMPP, Joomla 6.1-dev
Test Setup:
{loadmodule mod_custom,Test Module}Before PR:
❌ GET /api/v1/content/articles/1
Response: {loadmodule mod_custom,Test Module} (plain text, not rendered)
After PR:
✅ GET /api/v1/content/articles/1
Response: Hello from Module! (module content rendered)
Additional Tests:
✅ Site frontend - modules render normally (no regression)
✅ Admin backend - modules render normally (no regression)
✅ API module rendering respects access levels
✅ Module caching works correctly in API context
Result: Works perfectly! Modules now render in API responses, enabling headless Joomla and mobile app use cases.
@itsnewtjam Thank you for your contribution 👍 Since 5.4.0 is already in feature freeze mode, this PR needs to be moved to 6.1-dev. If you could make the rebase yourself, that would be great. Otherwise, we can support it.