Modules API
De Modules API biedt endpoints voor het beheren van site modules in Joomla.
Base URL
/api/index.php/v1/modules
Endpoints Overzicht
| Methode | Endpoint | Beschrijving |
|---|---|---|
| GET | /modules/site | Alle site modules ophalen |
| GET | /modules/site/{id} | Specifieke module ophalen |
| POST | /modules/site | Nieuwe module aanmaken |
| PATCH | /modules/site/{id} | Module bijwerken |
| DELETE | /modules/site/{id} | Module verwijderen |
Alle modules ophalen
GET /api/index.php/v1/modules/site
Response
{
"data": [
{
"type": "modules",
"id": "1",
"attributes": {
"title": "Hoofdmenu",
"module": "mod_menu",
"position": "sidebar-left",
"published": 1,
"access": 1,
"showtitle": 1,
"language": "*",
"note": ""
}
}
]
}
Specifieke module ophalen
GET /api/index.php/v1/modules/site/{id}
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| id | integer | Module ID |
Voorbeeld
curl -X GET "https://jouwesite.nl/api/index.php/v1/modules/site/1" \
-H "X-Joomla-Token: JOUW_API_TOKEN"
Module aanmaken
POST /api/index.php/v1/modules/site
Request Body
{
"title": "Mijn Custom Module",
"module": "mod_custom",
"position": "sidebar-right",
"published": 1,
"access": 1,
"showtitle": 1,
"language": "*",
"note": "Custom HTML module",
"params": {
"content": "<p>Dit is custom HTML content</p>"
}
}
Verplichte velden
| Veld | Type | Beschrijving |
|---|---|---|
| title | string | Titel van de module |
| module | string | Module type |
| position | string | Template positie |
Optionele velden
| Veld | Type | Standaard | Beschrijving |
|---|---|---|---|
| published | int | 1 | Publicatiestatus |
| access | int | 1 | Toegangsniveau |
| showtitle | int | 1 | Titel tonen (0=nee, 1=ja) |
| language | string | "*" | Taalcode |
| note | string | "" | Notitie |
| ordering | int | 0 | Volgorde |
| params | object | Module specifieke parameters |
Voorbeeld
curl -X POST "https://jouwesite.nl/api/index.php/v1/modules/site" \
-H "X-Joomla-Token: JOUW_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Welkom Bericht",
"module": "mod_custom",
"position": "banner",
"published": 1,
"showtitle": 0,
"params": {
"content": "<h2>Welkom op onze site!</h2>"
}
}'
Module bijwerken
PATCH /api/index.php/v1/modules/site/{id}
Request Body
{
"title": "Bijgewerkte Module",
"position": "footer",
"published": 0
}
Voorbeeld
curl -X PATCH "https://jouwesite.nl/api/index.php/v1/modules/site/1" \
-H "X-Joomla-Token: JOUW_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Bijgewerkte Module Titel"
}'
Module verwijderen
DELETE /api/index.php/v1/modules/site/{id}
Voorbeeld
curl -X DELETE "https://jouwesite.nl/api/index.php/v1/modules/site/5" \
-H "X-Joomla-Token: JOUW_API_TOKEN"
Module States
| Waarde | Status |
|---|---|
| -2 | Prullenbak |
| 0 | Niet gepubliceerd |
| 1 | Gepubliceerd |
Veelgebruikte Module Types
| Module | Beschrijving |
|---|---|
| mod_menu | Menu module |
| mod_custom | Custom HTML |
| mod_articles_latest | Laatste artikelen |
| mod_articles_popular | Populaire artikelen |
| mod_articles_category | Artikelen uit categorie |
| mod_breadcrumbs | Broodkruimelpad |
| mod_login | Login formulier |
| mod_search | Zoekformulier |
| mod_tags_popular | Populaire tags |
| mod_footer | Footer informatie |
Template Posities
Template posities variëren per template. Veelvoorkomende posities:
| Positie | Beschrijving |
|---|---|
| banner | Banner gebied |
| sidebar-left | Linker zijbalk |
| sidebar-right | Rechter zijbalk |
| top-a | Boven content |
| bottom-a | Onder content |
| footer | Footer |
| debug | Debug positie |
Filtering
Op positie
GET /api/index.php/v1/modules/site?filter[position]=sidebar-left
Op module type
GET /api/index.php/v1/modules/site?filter[module]=mod_menu
Op publicatiestatus
GET /api/index.php/v1/modules/site?filter[published]=1
Module Parameters
Elke module type heeft eigen parameters. Hier een voorbeeld voor mod_articles_latest:
{
"title": "Laatste Nieuws",
"module": "mod_articles_latest",
"position": "sidebar-right",
"params": {
"catid": ["2"],
"count": 5,
"show_author": 0,
"show_date": 1,
"show_category": 1
}
}
Menu Toewijzing
Modules kunnen worden toegewezen aan specifieke menu-items. Dit gebeurt via het assignment veld:
| Waarde | Betekenis |
|---|---|
| 0 | Op alle pagina's |
| -1 | Op geen enkele pagina |
| 1 | Alleen op geselecteerde |
info
Menu-toewijzing via de API is complex. Gebruik bij voorkeur de Joomla administrator interface voor geavanceerde toewijzingen.