Contact personen in Joomla
Veel Joomla-gebruikers zien het component "Contactpersonen" over het hoofd. Ze beschouwen die als een eenvoudige plek om een naam en e-mailadres op te slaan, en grijpen daarom naar een formulierextensie van derden. Dat is een gemiste kans.
De component Contactpersonen (com_contact) is twee dingen tegelijk. Het is een gestructureerd adresboek voor de mensen en locaties achter je website: medewerkers, kantoren, afdelingen en partners. Daarnaast is het een volledig werkende contactformulier-engine, waarbij elke vermelding zijn eigen e-mailformulier kan hebben dat berichten naar de juiste persoon stuurt. Geen extra extensie nodig.
Van "toon onze kantoorgegevens" tot contactspecifieke e-mailformulieren, gebruikerskoppelingen en het ontwikkelaarsmodel erachter.
Dit artikel legt uit hoe Joomla Contacten echt werkt. Het behandelt de basis voor website-eigenaren, de praktische configuratie voor beheerders en de technische details voor ontwikkelaars. Je leert hoe contacten en categorieën samenwerken, hoe het e-mailformulier werkt, hoe overerving van weergave-instellingen wordt afgehandeld, hoe contacten worden gekoppeld aan gebruikersaccounts en hoe je de meest voorkomende fouten voorkomt.
1. De basis
1.1 De twee bouwstenen
De component is gebaseerd op twee eenvoudige concepten. Zodra je begrijpt hoe ze met elkaar samenhangen, valt de rest vanzelf op zijn plaats.
| Concept | Wat het is | Databasetabel |
|---|---|---|
| Contact | Een enkele persoon of locatie (naam, adres, e-mail, formulier). | #__contact_details |
| Categorie | Een groep contacten (een com_contact-categorie). | #__categories |
De relatie is eenvoudig te onthouden: een contact hoort bij precies één categorie. Dit is dezelfde nested-set categorieboom die ook door artikelen wordt gebruikt.
1.2 Hoe de onderdelen samenwerken
Zie het als volgt:
Categorie ── Contact ──┬── Contactformulier → e-mail
├── vCard → download
└── Gekoppelde gebruiker → profiel + auteursartikelen
- Contact bevat de gegevens: wie iemand is, waar die zich bevindt en hoe je contact kunt opnemen.
- Categorie bepaalt hoe je contacten groepeert voor lijstweergaven en toegangsbeheer.
- Formulier is een optioneel e-mailformulier per contact.
- Gekoppelde gebruiker verbindt een contact aan een account in
#__users.
Een handige manier om dit te onthouden: com_contact is een gestructureerd adresboek waarbij elke vermelding ook een werkend contactformulier kan zijn.
1.3 Waar vind je het?
In de Joomla 6-beheeromgeving beheer je contacten en categorieën hier:
Componenten → Contactpersonen → Contactpersonen (de personen en locaties)
Componenten → Contactpersonen → Categorieën (groepering)
De weergave aan de voorkant van de website wordt aangestuurd door menu-items:
Menu's → Nieuw → Contactpersonen → (Enkel contactpersoon / Lijst met contactpersonen in een categorie / Speciale contactpersonen / Lijst met alle categorieën in een contact categoriestructuur)
1.4 Welke gegevens bevat een contactpersoon?
Het scherm voor het bewerken van een contact verdeelt de velden over verschillende tabbladen:
| Tabblad | Inhoud |
|---|---|
| Contactpersoon | Naam, gekoppelde gebruiker, afbeelding, categorie en het adresblok. |
| Overige informatie | Vrije tekst voor "aanvullende informatie" in HTML. |
| Weergave | Welke velden en links aan de voorkant worden getoond. |
| Formulier | Of het e-mailformulier wordt weergegeven en hoe het zich gedraagt. |
| Publicatie | Auteur, datums en metadata. |
Het adresblok bevat onder andere: functie, adres, plaats, provincie/staat, land, postcode, telefoon, mobiel, fax, e-mail en website.
Naar boven2. Contactpersonen aanmaken
2.1 Maak eerst een categorie aan
Een contact moet zich binnen een categorie bevinden, dus maak die eerst aan voordat je personen toevoegt:
Componenten → Contactpersonen → Categorieën → Nieuw
- Dit is een gewone Joomla-categorie met
extension = com_contact. - Ze gebruikt dezelfde categorieboom, dezelfde ACL en dezelfde knop Opnieuw opbouwen als artikelcategorieën.
2.2 Maak het contact aan
Voeg vervolgens het contact zelf toe:
Componenten → Contactpersonen → Contactpersonen → Nieuw
Slechts twee velden zijn verplicht:
- Naam: de persoon of locatie.
- Categorie: de com_contact-categorie waarin het contact thuishoort.
Alles daarbuiten (adres, e-mail, afbeelding, links) is optioneel, maar juist die gegevens maken een contact echt bruikbaar.
2.3 De vijf "link"-velden
Naast de standaard adresvelden heeft elk contact vijf generieke linkvelden. Elk veld bestaat uit een URL en een label:
linka / linka_name bijv. https://linkedin.com/... "LinkedIn"
linkb / linkb_name bijv. https://github.com/... "GitHub"
linkc ... linke
Deze zijn ideaal voor socialmedia-profielen of "zie ook"-links zonder dat je aangepaste velden hoeft aan te maken.
2.4 Uitgelichte contacten
Je kunt voor elk contact de optie Uitgelicht (een ster) inschakelen. Een menu-item Uitgelichte contacten toont vervolgens alleen die contacten. Dit werkt volgens hetzelfde principe als uitgelichte artikelen: een geselecteerde subset bovenop de volledige lijst.
2.5 Aangepaste velden werken hier ook
De component Contacten ondersteunt custom fields, waardoor je deze zonder programmeerwerk kunt uitbreiden:
Componenten → Velden → (selecteer "Contacten")
- Voeg getypeerde velden toe (tekst, lijst, kalender, media en meer) aan alle contacten of aan specifieke categorieën.
- Deze worden automatisch weergegeven in de contactweergave en kunnen ook in het formulier verschijnen.
Voor de logica van veldgroepen en categoriegebonden velden, zie het aparte artikel "Focus op Custom Fields".
Naar boven3. Contacten weergeven
3.1 Een contact doet niets zonder een menu-item
Zoals de meeste Joomla-content is een contact slechts data totdat een menu-item (of een module of plugin) het weergeeft. Er zijn vier typen menu-items:
| Type menu-item | Wat het toont |
|---|---|
| Enkel contact | De volledige detailweergave en het formulier van één contact. |
| Contacten in een categorie weergeven | Een tabel of lijst van één categorie. |
| Uitgelichte contacten | Alle contacten die als Uitgelicht zijn gemarkeerd. |
| Alle contactcategorieën weergeven | De categorieboom als links. |
3.2 De weergave van een enkel contact
De weergave van een enkel contact wordt bepaald door het tabblad Weergave van het contact en de opties van het menu-item. Een typische lay-out ziet er zo uit:
[ afbeelding ] Naam
Functie
Adresblok (elke regel afzonderlijk in- of uitschakelbaar)
Telefoon / Mobiel / Fax / E-mail / Website
Aanvullende informatie
Links (linka...linke)
Contactformulier
Voor elke regel bestaat een instelling Tonen / Verbergen / Globale instelling gebruiken. De standaardwaarden worden ingesteld in de Opties van de component.
3.3 De drie niveaus van overerving
Of een veld wordt weergegeven, wordt in deze volgorde bepaald, van meest specifiek naar meest algemeen:
Contact (tabblad Weergave) Tonen / Verbergen / Globale instelling gebruiken
└─ Opties van menu-item Tonen / Verbergen / Globale instelling gebruiken
└─ Componentopties (globale standaardinstelling)
"Globale instelling gebruiken" vormt de verbindende schakel. Stel een waarde één keer in via Opties en overschrijf die alleen per menu-item of per contact waar dat echt nodig is.
3.4 Lijst- en categorieweergaven
- De Lijstweergave toont een sorteerbare tabel met onder andere naam, functie en telefoonnummer.
- Kolommen, zoekfilters en paginering zijn allemaal instelbaar via de opties van het menu-item.
- De Categorieweergave toont de categorieboom, waarbij elke categorie naar zijn eigen lijst verwijst.
3.5 vCard downloaden
Elk contact kan een downloadbare vCard aanbieden (een .vcf-bestand). Dit is het standaardformaat dat door vrijwel elk adresboek wordt ondersteund.
allow_vcard = 1 → link "Contactgegevens downloaden" in de contactweergave
- Joomla bevat hiervoor een speciale weergave:
src/View/Contact/VcfView.php. - Deze zet naam, functie, adresgegevens, telefoonnummer, e-mail en website om naar een
.vcf-bestand. - Bezoekers hoeven slechts één keer te klikken om het contact rechtstreeks aan hun telefoon of e-mailprogramma toe te voegen.
Schakel vCard-download toestaan in via het tabblad Weergave (of globaal via Opties). Eén instelling, geen extra werk: een adresboek dat zichzelf kan exporteren.
Naar boven4. Het contactformulier en e-mail
4.1 Het formulier is de belangrijkste functie
Elk contact kan een e-mailformulier tonen. Wanneer een bezoeker dit invult, verstuurt Joomla een e-mail naar het adres van dat contact. Je hebt hiervoor geen formulierextensie van derden nodig.
Bezoeker vult formulier in → Joomla valideert → e-mail naar contact → optionele kopie/antwoord
Je schakelt dit in via het tabblad Formulier van het contact of globaal via Opties.
4.2 Waar gaat de e-mail naartoe?
De ontvanger is het eigen e-mailadres van het contact, opgeslagen in het veld email_to. Dit is een belangrijk detail: de e-mail gaat naar email_to, niet naar het e-mailadres van de gekoppelde gebruiker.
Het tabblad Formulier biedt verschillende opties:
| Optie | Effect |
|---|---|
| Contactformulier tonen | Hoofdschakelaar voor dit contact. |
| Kopie naar afzender sturen | Stuurt de bezoeker een kopie van zijn eigen bericht. |
| Geblokkeerde e-mail / onderwerp / tekst | Eenvoudige spamfilters (blokkadelijsten). |
| Sessiecontrole | Vereist een geldige sessie (validate_session) als bescherming tegen bots. |
| Aangepast antwoord | Onderdrukt Joomla's automatische antwoord zodat een plugin of integratie dit kan afhandelen. |
4.3 Doorsturen na verzending
Het veld redirect bepaalt waar de bezoeker terechtkomt na een succesvolle verzending:
- Leeg: terug naar de contactpagina met een bedankbericht.
- Ingesteld: een aangepaste bedankpagina, handig voor conversietracking.
4.4 Ingebouwde bescherming tegen spam
Contacten bevatten lichte beveiligingsmaatregelen die ook zonder CAPTCHA al nuttig zijn:
- CSRF-token: elke verzending roept
checkToken()aan inContactController::submit(). Een vervalste of verouderde POST-aanvraag wordt afgewezen voordat verdere verwerking plaatsvindt. - Geblokkeerde e-mail / onderwerp / tekst: blokkadelijsten op basis van tekstfragmenten, instelbaar per contact.
- Sessiecontrole: weigert inzendingen zonder actieve Joomla-sessie, waardoor eenvoudige spambots worden tegengehouden.
- CAPTCHA-plugin: als er een globale CAPTCHA (bijvoorbeeld reCAPTCHA) is ingesteld, gebruikt het formulier deze automatisch.
De CSRF-beveiliging staat altijd aan. Voeg daar sessiecontrole en een globale CAPTCHA aan toe en je houdt de meeste spam tegen zonder extra extensies.
4.5 E-mailadres afschermen
E-mailadressen die op de pagina worden weergegeven, worden verwerkt door de contentplugin Email Cloaking:
Dit e-mailadres wordt beveiligd tegen spambots. JavaScript dient ingeschakeld te zijn om het te bekijken. → versluierde JavaScript-code → zichtbaar voor mensen, verborgen voor scrapers
- De instelling
add_mailto_linkbepaalt of het adres een klikbaremailto:-link wordt. - Het afschermen staat standaard aan: harvesters zien onleesbare code, terwijl bezoekers het echte e-mailadres zien.
5. Categorieën en toegangsbeheer
5.1 Contacten gebruiken het gedeelde categoriesysteem
Contactcategorieën zijn gewone Joomla-categorieën met extension = com_contact:
#__categories WHERE extension = 'com_contact'
Dat betekent dat ze dezelfde categorieboom, dezelfde knop Opnieuw opbouwen en hetzelfde ACL-systeem gebruiken als artikelcategorieën.
5.2 Waarom categorieën hier belangrijk zijn
- Een menu-item van het type Lijst of Categorieën richt zich op een categorie, die vervolgens je contactoverzicht vormt.
- Je kunt contacten organiseren op afdeling, kantoor, regio of team.
- Rechten worden overgeërfd binnen de categorieboom (Aanmaken, Bewerken, Status wijzigen, Verwijderen).
Voor details over het nested-set-model met lft en rgt, zie het artikel "Focus op Categorieën".
5.3 Toegang en taal
- Het Toegangsniveau van een contact bepaalt wie het kan bekijken.
- Met de instelling Taal kun je een contact alleen laten verschijnen op de bijbehorende sitetaal.
- Combineer beide op een meertalige website: één structuur, waarbij personen worden gefilterd op taal.
6. Plugins en integraties
6.1 Contacten vormen een klein ecosysteem
Zes kernplugins breiden com_contact uit:
| Plugin | Type | Wat het doet |
|---|---|---|
| Contact | content | Toont de contactgegevens van de auteur onder een artikel. |
| Contact Creator | user | Maakt automatisch een contact aan wanneer een gebruiker zich registreert. |
| Contact | editors-xtd | Editor-knop om een link naar een contact in te voegen. |
| Contacts | finder | Smart Search-indexeerder voor contacten. |
| Contact | privacy | Exporteert en verwijdert contactgegevens voor AVG-verzoeken. |
| Contact | webservices | Activeert de REST API-routes. |
6.2 Een contact koppelen aan een gebruiker
Het veld user_id koppelt een contact aan een account in #__users:
Contact.user_id → #__users.id
Deze koppeling maakt verschillende functies mogelijk:
- Gebruikersvelden tonen: de profielvelden van de gebruiker verschijnen op de contactpagina.
- De contentplugin Contact: een kader "Over de auteur" koppelt artikelen terug naar het contact.
- Eén identiteit: het gebruikersaccount en de publieke contactvermelding verwijzen naar dezelfde persoon.
6.3 Contact Creator: automatische profielen
De plugin Contact Creator bevindt zich in plugins/user/contactcreator:
- Bij gebruikersregistratie maakt deze automatisch een gekoppeld contact aan.
- De plugin is configureerbaar: je kiest de doel-categorie, of het contact automatisch moet worden gepubliceerd en of de website automatisch wordt ingevuld.
De plugin haakt in op een Joomla-gebruikersevenement:
onUserAfterSave → ContactCreator → insert #__contact_details (gekoppeld via user_id)
Dit is een mooi voorbeeld van een eventgestuurde plugin: elke nieuwe gebruiker wordt automatisch een vermelding in de contactdirectory, zonder handmatige invoer.
6.4 De plugin "Over de auteur"
De contentplugin in plugins/content/contact maakt het mogelijk om in een artikel de contactgegevens van de auteur weer te geven:
Article.created_by → Contact.user_id → contactblok of link weergeven
Je configureert deze plugin globaal (positie en of deze koppelt of insluit). Zo vormt hij een brug tussen com_content en com_contact via dezelfde gebruikers-ID.
6.5 Smart Search en privacy
- De Finder-plugin indexeert contacten zodat ze verschijnen in de zoekresultaten van de website.
- De Privacy-plugin neemt contacten mee in AVG-verzoeken voor export en verwijdering. Dat is belangrijk omdat een contact persoonsgegevens kan bevatten.
7. Onder de motorkap (voor ontwikkelaars)
7.1 Eén hoofdtabel
De contacten zelf worden opgeslagen in één tabel:
#__contact_details de contacten (personen/locaties) + formulier- en weergave-instellingen
Daarnaast zijn er records in de gedeelde tabel #__categories (met extension = com_contact) en in de tabellen #__fields* wanneer aangepaste velden worden gebruikt.
7.2 Belangrijke kolommen in #__contact_details
De belangrijkste kolommen zijn:
id, name, alias identiteit + SEF-slug
catid categorie-id (→ #__categories)
user_id gekoppelde Joomla-gebruiker (→ #__users), 0 = geen
con_position functietitel / functie
address, suburb, state,
country, postcode adresgegevens
telephone, mobile, fax telefoonnummers
email_to ontvanger van formulierberichten
webpage website-URL
image foto / logo
misc vrij HTML-blok met aanvullende informatie
linka...linke / *_name vijf generieke URL- en labelvelden
default_con standaardcontact van de categorie
featured markering als uitgelicht
sortname1/2/3 velden voor aangepaste sortering (bijvoorbeeld achternaam)
params JSON: alle show_* instellingen + formulieropties
metakey/metadesc/metadata SEO + robots
published, access, language, ordering, hits, version
publish_up / publish_down publicatieperiode
7.3 De MVC-structuur
De component is opgesplitst in een beheerdersgedeelte en een sitegedeelte:
administrator/components/com_contact/ ← beheer van contacten + categorieën
src/Model/ContactModel.php, ContactsModel.php
src/Table, src/Controller, tmpl/, forms/contact.xml
components/com_contact/ ← front-endweergaven
src/Model/ContactModel.php (enkel contact + formulierverwerking)
src/Model/CategoryModel.php (lijst binnen een categorie)
src/Model/FeaturedModel.php (lijst met uitgelichte contacten)
src/Model/CategoriesModel.php (categorieboom)
src/Controller/ContactController.php (verwerking van formulier-POST)
plugins/... ← de zes integraties
Opvallend is dat de vijf modellen aan de sitezijde vrijwel één-op-één overeenkomen met de vier typen menu-items, waarbij het contactmodel ook de formulierverwerking afhandelt.
7.4 De verwerking van formulierinzendingen
Wanneer een bezoeker een contactformulier verstuurt, volgt de aanvraag dit pad:
POST /index.php?option=com_contact&task=contact.submit&id=42
→ ContactController::submit()
→ valideren (sessiecontrole, geblokkeerde woorden, CAPTCHA)
→ e-mail opbouwen en verzenden (Joomla Mailer)
→ optionele kopie naar afzender
→ doorsturen (aangepaste URL of terug met melding)
De eigen controller van de component, niet een generieke formuliercomponent, is verantwoordelijk voor validatie en verzending van e-mails.
7.5 SEF-URL's en de router
Contact-URL's worden opgebouwd en verwerkt door de router van de component:
components/com_contact/src/Service/Router.php
Deze zet querystrings om in nette, leesbare URL's en vice versa:
index.php?option=com_contact&view=contact&id=7 ↔ /contact/support/peter-martin
De router heeft drie taken:
- Build: SEF-links genereren voor contacten, categorieën en uitgelichte weergaven.
- Parse: een inkomende SEF-URL vertalen naar de juiste weergave en ID.
- Menu-resolutie: waar mogelijk een bestaand menu-item gebruiken in plaats van een generiek pad.
Omdat de router onderdeel is van de component, blijven contactlinks werken wanneer categorieën worden verplaatst en sluiten ze automatisch aan op je menustructuur.
7.6 Web Services API (headless)
De component bevat REST-routes die worden geactiveerd door de webservices-plugin:
api/components/com_contact/src/Controller/ContactController.php
GET /api/index.php/v1/contact/contacts
GET /api/index.php/v1/contact/contacts/{id}
POST /api/index.php/v1/contact/contacts (aanmaken)
Dit maakt moderne architecturen mogelijk:
Joomla API → React / Vue-directory → aangepaste contactweergave
De gegevens blijven in Joomla opgeslagen, terwijl de presentatie elders kan plaatsvinden. Houd er wel rekening mee dat API-gebruik de ingebouwde formuliermailer omzeilt, waardoor je formulierverwerking zelf moet afhandelen.
7.7 Programmatische toegang
Dezelfde nested-set Categories API werkt ook voor contacten:
use Joomla\CMS\Categories\Categories;
$categories = Categories::getInstance('Contact');
$node = $categories->get('staff'); // via alias of id
$children = $node->getChildren();
De tabel- en modelklassen bevinden zich in deze namespaces:
Joomla\Component\Contact\Administrator\Table\ContactTable
Joomla\Component\Contact\Site\Model\ContactModel
7.8 Template overrides
Elke weergave kan per template worden overschreven:
components/com_contact/tmpl/contact/default.php
templates/<jouw_template>/html/com_contact/contact/default.php ← override
De weergave van een enkel contact is opgesplitst in sublayouts (_address, _user_custom_fields, _links enzovoort), zodat je alleen het adresblok of alleen het formulier kunt overschrijven zonder de volledige pagina aan te passen. De vuistregel: overschrijf de weergave, niet het model. Gegevens en presentatie blijven zo gescheiden.
7.9 Op grote schaal
Het datamodel is eenvoudig, maar bij directories met duizenden contacten zijn er enkele aandachtspunten:
| Aandachtspunt | Waarom | Oplossing |
|---|---|---|
| Kosten van lijstquery's | Categorie- en uitgelichte weergaven filteren en sorteren grote datasets. | Indexeer catid, published, access en language. |
| Opzoekingen via gebruikerskoppelingen | "Artikelen van auteur" en profielkoppelingen gebruiken user_id. |
Indexeer user_id (0 = geen komt vaak voor). |
| Joins van aangepaste velden | #__fields_values groeit per contact en per veld. |
Beperk velden in lijstweergaven en laad ze alleen wanneer nodig. |
| Diepte van categorieën | Diepe bomen vergroten scans op lft en rgt. |
Houd de boom ondiep en voer Opnieuw opbouwen uit na grote verplaatsingen. |
Contacten worden veel gelezen en weinig gewijzigd. Cache de weergaven en indexeer de filterkolommen, dan schaalt de component probleemloos mee.
Naar boven```html id="n4f8tx"
8. Veelvoorkomende fouten en valkuilen
8.1 "Het contactformulier verschijnt niet"
Doorloop deze checklist:
- Is Contactformulier tonen ingeschakeld (op het tabblad Formulier van het contact en niet globaal verborgen)?
- Heeft het contact een email_to-adres?
- Is het menu-item van het type Enkel contact? Lijstweergaven tonen geen formulier.
- Verbergt een verkeerd ingestelde optie Globale instelling gebruiken het formulier op een hoger niveau?
8.2 "De e-mail komt nooit aan"
- Is de e-mailconfiguratie van de website correct ingesteld en faalt deze niet stilzwijgend? Controleer dit lokaal bijvoorbeeld met MailHog.
- Wordt het bericht geweigerd door de filters voor geblokkeerde tekst, onderwerp of e-mailadres?
- Mislukt de sessiecontrole bij een gecachte pagina of een anonieme inzending?
- Vergeet niet dat de ontvanger
email_tois, niet het e-mailadres van de gekoppelde gebruiker. Controleer of dit veld daadwerkelijk is ingevuld.
8.3 Verwarring rond de weergave
- De drie niveaus van overerving met Tonen / Verbergen / Globale instelling gebruiken zorgen regelmatig voor verwarring. Controleer alle drie de niveaus.
- Een lege contactpagina betekent vaak dat alles op Verbergen staat.
- Aangepaste gebruikersvelden van een gekoppelde gebruiker worden alleen weergegeven als zowel de koppeling als de optie Gebruikersvelden tonen zijn ingeschakeld.
8.4 Privacy en gegevens
- Een contact kan persoonsgegevens van een echte persoon bevatten, neem dit daarom op in je privacyverklaring.
- De Privacy-plugin moet zijn ingeschakeld om contacten mee te nemen in AVG-verzoeken voor export en verwijdering.
- E-mailafscherming beschermt de weergave op de website, maar het e-mailadres wordt nog steeds als platte tekst in de database opgeslagen.
9. Best practices
Als je maar een paar dingen uit dit artikel onthoudt, laat het dan deze zijn:
- Maak eerst een categorie aan voordat je contacten toevoegt, elk contact moet aan een categorie gekoppeld zijn.
- De ontvanger van het formulier is
email_to, niet het e-mailadres van de gekoppelde gebruiker. - Beheers de drie niveaus van overerving met Tonen / Verbergen / Globale instelling gebruiken: stel standaardwaarden één keer in via Opties en overschrijf alleen waar nodig.
- Koppel contacten aan gebruikers om profielen, auteursblokken en één centrale identiteit mogelijk te maken.
- Schakel de Privacy-plugin in zodat contacten worden meegenomen in AVG-verzoeken voor export en verwijdering.
- Indexeer filterkolommen bij grote directories en houd de categorieboom zo ondiep mogelijk.
10. In het kort
CONTACT Componenten → Contactpersonen → Contactpersonen → Nieuw
CATEGORIE Componenten → Contactpersonen → Categorieën (extension=com_contact)
WEERGAVE Menu's → Nieuw → Contactpersonen → Enkel / Lijst / Uitgelicht / Categorieën
FORMULIER Contact → tabblad Formulier → Contactformulier tonen (+ email_to)
ONTVANGER email_to (NIET het adres van de gekoppelde gebruiker)
GEBRUIKER Contact.user_id → #__users.id
OVERERVING Contact → Menu-item → Componentopties (Globale instelling gebruiken)
UITGELICHT contactpersoon markeren met ster → menu-item Uitgelichte contacten
VCARD allow_vcard → downloadbaar .vcf-bestand (VcfView)
LINKS linka...linke (+ _name-labels), vijf velden
VELDEN Componenten → Velden → Contactpersonen (aangepaste velden)
PLUGINS contactcreator (onUserAfterSave), content/contact (auteursblok), finder, privacy
SPAM CSRF-token (altijd) + geblokkeerde woorden + sessiecontrole + CAPTCHA
AFSCHERMING Contentplugin Email Cloaking (standaard ingeschakeld)
ROUTER src/Service/Router.php → SEF /contact//
OVERRIDE templates//html/com_contact/contact/default.php
INDEXEN catid, user_id, published, access, language
API /api/index.php/v1/contact/contacts
TABEL #__contact_details (+ #__categories)
Naar boven11. Samenvatting
Joomla Contacten is tegelijkertijd een gestructureerd adresboek en een contactformulier-engine, verborgen in het volle zicht. Zodra je het op die manier bekijkt, merk je dat je voor veel taken geen extra extensies nodig hebt omdat Joomla ze standaard al goed afhandelt.
Het biedt:
- Structuur: getypeerde velden, een adresblok, vijf linkvelden en aangepaste velden.
- Formulieren: e-mailformulieren per contact met ingebouwde bescherming tegen spam, zonder extra extensies.
- Identiteit: koppel contacten aan gebruikers, maak automatisch profielen aan en toon auteursblokken.
- Weergave: vier menuweergaven met overerving op drie niveaus via Tonen / Verbergen.
- Integratie: een gedeelde categorieboom, ACL, Smart Search, Privacy en een REST API.
- Privacy: e-mailafscherming plus AVG-export en verwijdering, standaard ingebouwd.
Of je nu een medewerkersoverzicht, een ledenlijst of gewoon een betrouwbare contactpagina wilt maken die berichten naar de juiste persoon stuurt, de component Contacten verdient een nieuwe blik. Het is het stille, degelijk gebouwde adresboek dat al die tijd onderdeel van Joomla is geweest.
Naar boven

Joomla specialist en Linux admin voor snelle, veilige en schaalbare websites.


