
Guided Tours in Joomla
Joomla kan mensen leren hoe ze Joomla gebruiken. Open een Joomla 6-backend en soms verschijnt er een klein pop-up venster die je stap voor stap door een scherm leidt, telkens een gemarkeerd element tegelijk. Dat is een guided tour, en precies dezelfde functie die je als nieuwe gebruiker ziet, kun je ook zelf maken.
Dit artikel legt uit hoe Joomla's onderdeel Guided Tours (com_guidedtours) echt werkt. Het behandelt de basis voor eigenaren en redacteuren die alleen een tour willen volgen, de dagelijkse instellingen voor beheerders die onboarding voor hun klanten willen bouwen, en de technische details voor ontwikkelaars die de database, de systeemplugin en de Shepherd.js-laag eronder willen begrijpen.
Interactieve, stapsgewijze hulp die in Joomla zelf zit, zonder dat je een externe extensie nodig hebt.
Het doel is eenvoudig: je Guided Tours goed genoeg laten begrijpen om met vertrouwen je eigen tours te bouwen en ze op te lossen wanneer ze niet goed werken.
1. De basis
1.1 Wat zijn Guided Tours?
Een guided tour is een reeks kleine pop-overvensters die delen van een Joomla-scherm markeren en ze op volgorde uitleggen. Je bent ze waarschijnlijk al tegengekomen: de "What's New"-tour die je na een upgrade begroet, of de tour die een eerste gebruiker door het maken van een artikel leidt.
Joomla introduceerde Guided Tours als kernonderdeel in versie 4.3 (april 2023). Sindsdien zit het in elke release en wordt het steeds verbeterd. Een paar dingen maken het bijzonder:
- Het zit standaard in de kern. Je hoeft niets te installeren.
- Een tour is data, geen code. Elke tour en elke stap is een databaserij die je via de backend bewerkt, geen PHP nodig.
- Het gebruikt een bekende JavaScript-bibliotheek, Shepherd.js, om de pop-overs te tekenen en de rest van de pagina te dimmen.
- Tours zijn gekoppeld aan een scherm. Een tour verschijnt alleen op de pagina of het onderdeel waar hij bij hoort.
1.2 Een tour en zijn stappen
Het model heeft maar twee niveaus:
| Object | Rol |
|---|---|
| Tour | De container. Hij heeft een titel, een beschrijving, de pagina waarop hij start en bij welke extensies hij hoort. |
| Stap | Een pop-over. Hij wijst naar een deel van het scherm, toont een titel en wat tekst, en bepaalt hoe de gebruiker verdergaat. |
Een tour is een geordende lijst stappen. Het eerste wat een gebruiker ziet, is een intro-pop-over die uit de titel en beschrijving van de tour wordt opgebouwd, daarna stap 1, stap 2, enzovoort tot de laatste stap een knop Voltooien toont.
1.3 Waar vind ik het?
In de Joomla 6-backend zijn dit de relevante plekken:
Gebruikers → Guided Tours (de lijst met tours)
Gebruikers → Guided Tours → [een tour] → Steps (de stappen van een tour)
Gebruikers → Guided Tours → Options (instellingen + ACL)
Systeem → Beheren → Plugins → System - Guided Tours (de renderer)
Het onderdeel staat in administrator/components/com_guidedtours/. De plugin die de tours daadwerkelijk tekent, staat in plugins/system/guidedtours/. Let op de locatie: Guided Tours staat onder het menu Gebruikers, naast Gebruikersacties-log, niet onder Systeem.
1.4 Een tour volgen als gebruiker
Als gebruiker doe je bijna niets. Wanneer een tour beschikbaar is op een scherm, start Joomla hem automatisch of biedt hem aan. Er verschijnt een pop-over met een korte tekst, een knop Volgende en een voortgangsaanduiding zoals "Stap 2 van 6". Je leest, je klikt op Volgende, en de markering springt naar het volgende element. Aan het eind klik je op Voltooien, of je stopt eerder met Annuleren of verbergt een tour voorgoed.
Naar boven2. Anatomie van een tour en een stap
Voordat je iets bouwt, helpt het om elk veld te kennen, want elk veld komt rechtstreeks overeen met een databasekolom die je later kunt tegenkomen.
2.1 De velden van een tour
| Veld | Betekenis |
|---|---|
| Titel | De naam die in de lijst en op de intro-pop-over wordt getoond. |
| UID | Een unieke tekst-identifier, bijvoorbeeld joomla-guidedtours. Joomla genereert er een uit de titel als je het leeg laat. |
| Beschrijving | De HTML die op de intro-pop-over wordt getoond, voor de eerste stap. |
| URL | De pagina waar de tour start, als relatieve URL zoals index.php?option=com_content&view=articles. |
| Extensies | Bij welke onderdelen de tour hoort. Opgeslagen als JSON-lijst, bijvoorbeeld ["com_content"] of ["*"] voor overal. |
| Autostart | Als dit aanstaat, start de tour vanzelf de eerste keer dat een gebruiker zijn scherm bereikt. |
| Toegang | Het toegangsniveau voor weergave, zodat je een tour tot bepaalde gebruikersgroepen kunt beperken. |
| Taal | Een taalcode zoals en-GB, of * voor alle talen. |
| Status | Gepubliceerd, niet-gepubliceerd, gearchiveerd of in prullenbak. |
2.2 De velden van een stap
| Veld | Betekenis |
|---|---|
| Titel | De kop van de pop-over. |
| Beschrijving | De bodytekst (HTML toegestaan). |
| Target | Een CSS-selector voor het element dat moet worden gemarkeerd, zoals #jform_title. Leeg betekent een gecentreerde pop-over zonder target. |
| Positie | Waar de pop-over staat ten opzichte van de target: top, bottom, left, right of center. |
| Type | Hoe de stap zich gedraagt: Next, Redirect of Interactive (zie hoofdstuk 4). |
| Interactief type | Alleen voor interactieve stappen: welke actie de gebruiker moet uitvoeren. |
| URL | Alleen voor redirect-stappen: de pagina waar de gebruiker naartoe wordt gestuurd. |
Een stap hoort altijd bij een tour via zijn tour_id, en zijn plek in de reeks komt uit de waarde ordering die je instelt door rijen te slepen in de stappenlijst.
3. Je eerste tour maken
Laten we een kleine tour bouwen die redacteuren welkom heet op de artikellijst. Het hele werk gebeurt in de backend, zonder code.
3.1 De tour maken
- Ga naar
Gebruikers → Guided Toursen klik op Nieuw. - Zet Titel op "Welkom bij Artikelen".
- Zet URL op
index.php?option=com_content&view=articles. Dit is het scherm waarop de tour draait. - Kies bij Extensies voor Artikelen (
com_content). - Schrijf een korte Beschrijving; die wordt de welkomst-pop-over.
- Laat Autostart voorlopig uit zodat je hem op aanvraag kunt testen.
- Opslaan.
3.2 De stappen toevoegen
Open na het opslaan van de tour zijn lijst Steps en voeg stappen een voor een toe. Een eerste nuttige stap kan zijn:
| Veld | Waarde |
|---|---|
| Titel | Maak een nieuw artikel |
| Beschrijving | Klik op deze knop om een gloednieuw artikel te beginnen. |
| Target | #toolbar-new |
| Positie | bottom |
| Type | Next |
Voeg nog een paar stappen toe die naar het zoekvak, de filterbalk en de statuskolom wijzen. Sleep de rijen om de volgorde in te stellen.
3.3 Testen
Zorg dat de tour en al zijn stappen Gepubliceerd zijn. Bezoek dan de artikellijst. Omdat autostart uit staat, start je de tour via Joomla's tour-launcher in plaats van dat hij vanzelf verschijnt. Loop hem door, corrigeer elke target die niet het juiste element markeert, en zet pas daarna autostart aan als je wilt dat hij gebruikers automatisch begroet.
Een tour is zo goed als zijn targets. Als een selector naar niets wijst, wordt die stap overgeslagen of belandt hij op de verkeerde plek. Test altijd op het echte scherm.Naar boven
4. Staptypes en interactieve stappen
Elke stap heeft een type dat bepaalt hoe de gebruiker verdergaat. Joomla slaat dit op als een klein geheel getal, en de drie waarden liggen vast in het onderdeel.
4.1 De drie staptypes
| Type | Waarde | Gedrag |
|---|---|---|
| Next | 0 | Een gewone informatieve stap. De gebruiker leest hem en klikt op Volgende. |
| Redirect | 1 | Stuurt de gebruiker naar een andere pagina (de url van de stap) en gaat daar verder met de tour. |
| Interactive | 2 | Wacht tot de gebruiker echt iets doet met het target-element voordat het verdergaat. |
Gebruik Next voor "kijk hier"-stappen. Gebruik Redirect wanneer een tour meer dan een scherm beslaat, bijvoorbeeld van de artikellijst naar het bewerkscherm van een artikel. Gebruik Interactive wanneer je een hands-on tutorial wilt waarin de gebruiker zelf typt, klikt of iets selecteert.
4.2 De interactieve types
Wanneer een stap interactief is, geeft een tweede veld, Interactief type, precies aan wat de gebruiker moet doen. Joomla definieert er zes:
| Interactief type | Waarde | De gebruiker moet… |
|---|---|---|
| Form Submit | 1 | Op de verzendknop van een formulier klikken. |
| Text Field | 2 | In een tekstveld typen (eventueel een vereiste waarde). |
| Other | 3 | Iets doen met een algemeen veld dat niet bij de andere types past. |
| Button | 4 | Op een knop klikken. |
| Checkbox / Radio | 5 | Een selectievakje aanvinken of een keuzerondje kiezen (sinds Joomla 5.1). |
| Select List | 6 | Een waarde uit een keuzelijst kiezen (sinds Joomla 5.1). |
Voor een Text Field- of Select-stap kun je in de parameters van de stap een vereiste waarde instellen. De tour wacht dan tot de gebruiker precies die waarde invoert of selecteert voordat de knop Volgende ontgrendelt. Zo kan een tour iemand begeleiden bij het correct invullen van een formulier, niet alleen erover laten lezen.
Naar boven5. Elementen aanwijzen met CSS-selectors
De belangrijkste vaardigheid bij het bouwen van tours is het schrijven van goede targets. Het target-veld bevat een standaard CSS-selector, en Shepherd.js markeert het element dat erbij past.
5.1 Hoe targets werken
Veelgebruikte selector-stijlen:
| Selector | Komt overeen met |
|---|---|
#jform_title |
Het element met id jform_title (het Titel-invoerveld). |
.button-new |
Elk element met de class button-new. |
#toolbar-save button |
Een knop binnen de Opslaan-werkbalkgroep. |
| (leeg) | Geen target: een gecentreerde pop-over, goed voor intro's en samenvattingen. |
Om de juiste selector te vinden, open je het scherm in je browser, klik je met de rechtermuisknop op het element en kies je Inspecteren. Lees de id of class af in de developer tools en kopieer die naar het target-veld.
5.2 Positie en stabiliteit
Het veld Positie bepaalt waar de pop-over staat: top, bottom, left, right of center. Kies de kant met de meeste vrije ruimte zodat de pop-over het element dat hij beschrijft niet bedekt.
Een waarschuwing over stabiliteit: Joomla's adminmarkup kan tussen versies veranderen. Een id zoals #jform_title is betrouwbaar omdat Joomla-formulieren voorspelbare veld-id's gebruiken, maar een diepe selector die op een bepaalde nesting leunt (div > ul:first-of-type > li:last-child) kan na een update breken. Geef de voorkeur aan id's en stabiele classes boven lange structurele selectors.
6. Autostart en gebruikersstatus
Tours kunnen vanzelf starten, maar slechts een keer. Joomla onthoudt wat elke gebruiker deed, zodat een tour niet eindeloos blijft zeuren. Dit is het lastigste deel van de functie, dus het loont om het te begrijpen.
6.1 De autostart-vlag
Als een tour Autostart aan heeft, zoekt Joomla ernaar wanneer de gebruiker het bijbehorende scherm bereikt. Als de gebruiker hem nog niet heeft gezien, start hij automatisch. Er is ook een globale schakelaar onder Gebruikers → Guided Tours → Options met de naam Allow Tour Auto Start; zet die uit en geen enkele tour start nog automatisch, ongeacht de vlag per tour.
6.2 De drie statussen
Wanneer een gebruiker een automatisch startende tour afrondt of stopt, slaat Joomla een van drie statussen op in zijn gebruikersprofiel:
| Gebruikersactie | Opgeslagen status | Effect |
|---|---|---|
| Bereikt de laatste stap (Voltooien) | completed |
De tour start nooit meer automatisch voor deze gebruiker. |
| Klikt op "Voorgoed verbergen" / overslaan | skipped |
De tour start nooit meer automatisch voor deze gebruiker. |
| Sluit hem met Annuleren | delayed |
De tour blijft een tijdje weg en kan daarna weer verschijnen. |
Het "tijdje" voor een uitgestelde tour komt uit de optie Delayed Time, die standaard 60 minuten is. Na die periode kan de tour weer automatisch starten, wat handig is voor een gebruiker die hem sloot omdat hij druk was, niet omdat hij klaar was.
6.3 Waar de status wordt bewaard
De status wordt per gebruiker opgeslagen in de tabel #__user_profiles, onder een sleutel zoals guidedtour.id.5 voor de tour met id 5. Omdat het bij de gebruiker hoort, valt een tour die jij hebt voltooid je niet meer lastig, maar ziet een gloednieuwe redacteur hem alsnog vers. Wil je autostart herhaaldelijk testen, verwijder dan die profielrij voor je account, of test met een andere gebruiker.
7. Toegang, talen en meertalige tours
7.1 Een tour beperken met een toegangsniveau
Elke tour heeft een toegangsniveau, dezelfde weergave-toegangsniveaus die je voor artikelen en modules gebruikt. Stel een tour in op een toegangsniveau "Managers" en alleen gebruikers in groepen met dat niveau zien hem. Zo kun je op dezelfde site aparte onboarding bouwen voor redacteuren en voor beheerders.
7.2 Het taalveld
Een tour en zijn stappen dragen elk een taalcode. Zet die op * en de tour verschijnt voor iedereen; zet die op en-GB of nl-NL en hij verschijnt alleen voor gebruikers met die taal. De plugin filtert tours op de huidige taal en de alle-talen-waarde samen, zodat een gebruiker tours ziet die voor zijn taal zijn gemarkeerd plus die met *.
7.3 Hoe Joomla's eigen tours worden vertaald
De tours die met Joomla meekomen, zoals de "What's New"-tours, slaan hun tekst niet rechtstreeks op. In plaats daarvan bevatten hun titel- en beschrijvingsvelden taalsleutels zoals COM_GUIDEDTOURS_TOUR_GUIDEDTOURS_TITLE, en Joomla vertaalt ze bij weergave met behulp van taalbestanden. Een helper, GuidedtoursHelper::loadTranslationFiles(), laadt het juiste taalbestand op basis van de UID van de tour.
Voor een tour die je zelf met de hand maakt, heb je deze machinerie niet nodig: je typt de tekst gewoon in je eigen taal en stelt de taalcode in. Het sleutel-gebaseerde systeem is vooral van belang wanneer je een tour bouwt die vertaald in veel talen moet worden geleverd, zoals de kern doet.
Naar boven8. Onder de motorkap (ontwikkelaarsblik)
Nu de technische laag. Guided Tours is een mooi voorbeeld van een modern Joomla-onderdeel plus een systeemplugin, en het is klein genoeg om op een middag door te lezen.
8.1 De twee tabellen
Alles zit in twee databasetabellen:
#__guidedtours een rij per tour
#__guidedtour_steps een rij per stap, gekoppeld via tour_id
De belangrijkste kolommen van #__guidedtours:
id primaire sleutel
title titel van de tour (of een taalsleutel)
uid unieke tekst-identifier, bv. joomla-guidedtours
description HTML van de intro-pop-over (of een taalsleutel)
url relatieve URL van de pagina waarop de tour draait
extensions JSON-lijst van onderdelen, bv. ["com_content"]
autostart 0 of 1
access toegangsniveau voor weergave
language taalcode of *
published publicatiestatus
De belangrijkste kolommen van #__guidedtour_steps:
id primaire sleutel
tour_id de bovenliggende tour
title kop van de pop-over
description body-HTML van de pop-over
position top / bottom / left / right / center
target CSS-selector van het gemarkeerde element
type 0 = next, 1 = redirect, 2 = interactive
interactive_type 1..6 (alleen bij type = 2)
url redirect-doel (alleen bij type = 1)
ordering volgorde van de stap binnen de tour
params JSON, bv. {"required":1,"requiredvalue":"Hello"}
language taalcode of *
8.2 De systeemplugin en Shepherd.js
Het zichtbare deel van een tour komt volledig uit de plugin System - Guided Tours in plugins/system/guidedtours/. Die doet twee taken via geabonneerde events:
| Event | Wat de plugin doet |
|---|---|
onBeforeCompileHead |
Laadt de Shepherd.js-assets, injecteert vertaalde knoplabels en een sessietoken, en bepaalt of er op deze pagina een tour automatisch moet starten. |
onAjaxGuidedtours |
Geeft de volledige tour (zijn stappen, met types omgezet naar strings) als JSON terug wanneer de JavaScript erom vraagt. |
Het tekenen zelf gebruikt Shepherd.js, meegeleverd onder media/vendor/shepherdjs/ en ingepakt door media/plg_system_guidedtours/js/guidedtours.js. Shepherd tekent de pop-over, dimt de rest van de pagina en plaatst de markering over het target-element. Wanneer de plugin een tour verwerkt, zet hij de integer-types om naar de strings die Shepherd begrijpt, bijvoorbeeld staptype 2 wordt interactive en interactief type 6 wordt select.
8.3 Status opslaan via AJAX
Wanneer de gebruiker een automatisch startende tour voltooit, annuleert of overslaat, roept de browser de taak AjaxController::fetchUserState() van het onderdeel aan met drie waarden: tid (tour-id), sid (stapnummer) en context (een van tour.complete, tour.cancel, tour.skip). De controller zet de context om naar een status (completed, delayed of skipped) en slaat die op, maar alleen voor tours die daadwerkelijk automatisch starten.
Rond dat opslaan worden twee events afgevuurd waar eigen plugins naar kunnen luisteren:
onBeforeTourSaveUserState vuurt af voordat de status wordt geschreven
onAfterTourSaveUserState vuurt af daarna en kan het antwoordbericht overschrijven
Dit is de hook die je zou gebruiken om bijvoorbeeld het voltooien van een tour naar je eigen analytics te loggen, of om een badge toe te kennen wanneer een gebruiker een onboarding-tour afrondt.
8.4 Tours meeleveren met je extensie
Omdat een tour gewoon rijen in twee tabellen is, kan een extensie-ontwikkelaar kant-en-klare tours meeleveren in een extensiepakket. De gebruiker installeert je onderdeel, module of plugin, en de tours verschijnen zonder handmatige instellingen. Er zijn twee gangbare manieren om dit te doen.
De eerste is een install-SQL-script. Joomla draait bij de installatie de SQL-bestanden die in je manifest staan, dus daar zet je de inserts:
INSERT INTO `#__guidedtours`
(`title`, `uid`, `description`, `url`, `extensions`,
`autostart`, `access`, `language`, `published`)
VALUES
('COM_MYEXT_TOUR_INTRO_TITLE', 'mycompany-myext-intro',
'COM_MYEXT_TOUR_INTRO_DESC',
'index.php?option=com_myext&view=items',
'["com_myext"]', 1, 1, '*', 1);
INSERT INTO `#__guidedtour_steps`
(`tour_id`, `title`, `description`, `target`, `position`,
`type`, `ordering`, `language`, `published`)
VALUES
(LAST_INSERT_ID(), 'COM_MYEXT_TOUR_INTRO_STEP1_TITLE',
'COM_MYEXT_TOUR_INTRO_STEP1_DESC', '#toolbar-new', 'bottom',
0, 1, '*', 1);
Let op twee dingen die de tour schoon houden. De waarde extensions is een JSON-array, dus die moet geldige JSON zijn binnen de SQL-string. En de velden title en description bevatten taalsleutels, geen letterlijke tekst, zodat je dezelfde tour vertaald in meerdere talen kunt leveren (zie hoofdstuk 7.3). Lever de bijpassende strings in de taalbestanden van je extensie.
De tweede manier is een installer-script. Heb je logica nodig, bijvoorbeeld om dubbele inserts bij herinstallatie te voorkomen of om bestaande tours bij een upgrade bij te werken, zet het werk dan in de methoden install, update en postflight van je script.php in plaats van in platte SQL. Daar kun je com_guidedtours booten en zijn model gebruiken, dat ook de UID- en validatielogica van de tabel voor je uitvoert:
$factory = Factory::getApplication()
->bootComponent('com_guidedtours')
->getMVCFactory();
$model = $factory->createModel('Tour', 'Administrator', ['ignore_request' => true]);
$model->save([ /* tour-velden, zoals in hoofdstuk 9 */ ]);
Welke route je ook kiest, geef elke meegeleverde tour een onderscheidende uid (bijvoorbeeld mycompany-myext-intro) zodat hij nooit botst met kerntours of de tours van een andere extensie, en zodat je update-script hem later kan terugvinden en verversen.
9. Web Services API
Het is goed om hier duidelijk over te zijn, want mensen verwachten dat elk Joomla-onderdeel een REST-endpoint heeft. Guided Tours levert geen Web Services API. Er is geen map api/components/com_guidedtours/, dus je kunt geen tours opvragen of aanmaken via de publieke /api/index.php/v1/ REST-routes zoals je dat met artikelen of contacten kunt.
Het enige HTTP-ingangspunt is de interne AJAX-taak die hierboven is beschreven, en die bestaat om de gebruikersstatus vast te leggen, niet om tour-inhoud te beheren:
index.php?option=com_guidedtours&task=ajax.fetchUserState
&tid=5&sid=3&context=tour.complete
&[token]=1
Het vereist een ingelogde gebruiker en een geldig sessietoken, dus het is geen algemene API. Moet je tours programmatisch aanmaken, bijvoorbeeld om een verse installatie te vullen, dan zijn de praktische routes directe database-inserts in de twee tabellen, of het booten van het onderdeel en het gebruiken van zijn MVC-factory:
$factory = Factory::getApplication()
->bootComponent('com_guidedtours')
->getMVCFactory();
$model = $factory->createModel('Tour', 'Administrator', ['ignore_request' => true]);
$model->save([
'title' => 'Welkom bij Artikelen',
'url' => 'index.php?option=com_content&view=articles',
'extensions' => ['com_content'],
'published' => 1,
'language' => '*',
]);
Naar boven10. SEO en vindbaarheid
Guided Tours is een onboarding-tool voor de backend, geen publieke inhoud, dus het heeft geen directe SEO-voetafdruk. Een tour verschijnt nooit in je sitemap, wordt nooit door Google geindexeerd en levert geen publieke URL op. Verwacht niet dat je ergens op scoort omdat je tours hebt gebouwd.
Het beinvloedt wel een ander soort vindbaarheid, de soort die binnen je eigen admin telt:
- Goede tours maken functies vindbaar voor je klanten, wat supportvragen vermindert.
- Het veld URL van de tour is het dichtst bij routing: het bepaalt bij welk scherm een tour hoort, dus stel het nauwkeurig in.
- Bouw je een frontend-tour (stel de extensies breed in en richt je op frontend-elementen), houd de pop-overtekst dan kort; lange pop-overs schaden de ervaring op mobiel.
Kortom, zie Guided Tours als interne documentatie die staat waar het werk gebeurt, niet als een marketing- of zoekmiddel.
Naar boven11. Veelgemaakte fouten en valkuilen
11.1 De tour verschijnt niet
Symptoom: Je hebt een tour gebouwd maar er gebeurt niets op het scherm.
Oplossing: Controleer vier dingen op volgorde. Is de plugin System - Guided Tours ingeschakeld? Is de tour Gepubliceerd? Komt de URL van de tour overeen met het scherm waarop je zit? Bevat het veld Extensies het onderdeel van dat scherm? Alle vier moeten kloppen.
11.2 Een stap markeert het verkeerde element
Symptoom: De pop-over wijst naar lege ruimte of de verkeerde knop.
Oplossing: De CSS-selector in Target is fout of komt overeen met het verkeerde element. Inspecteer het element in je browser, kopieer de echte id of class, en geef de voorkeur aan een stabiele id zoals #jform_title boven een lange structurele selector.
11.3 Autostart triggert nooit meer
Symptoom: De tour startte een keer automatisch en nu krijg je hem bij het testen niet meer automatisch gestart.
Oplossing: Joomla heeft een status completed of skipped voor je gebruiker opgeslagen in #__user_profiles. Verwijder de bijbehorende rij guidedtour.id.N voor je account, of test met een nieuwe gebruiker. Een uitgestelde tour komt pas terug na de Delayed Time (standaard 60 minuten).
11.4 Autostart werkt voor niemand
Symptoom: Geen enkele tour start automatisch, zelfs gloednieuwe niet.
Oplossing: De globale optie Allow Tour Auto Start staat uit, of de eigen Autostart-vlag van de tour staat uit, of het toegangsniveau van de tour sluit de testgebruiker uit. Controleer alle drie.
11.5 Een tour over meerdere schermen breekt halverwege
Symptoom: De tour stopt wanneer hij naar een andere pagina zou moeten gaan.
Oplossing: Een stap die van pagina wisselt, moet een Redirect-stap zijn met een correcte URL, en de stappen die volgen moeten elementen aanwijzen die op de nieuwe pagina bestaan. Een gewone Next-stap kan niet naar een ander scherm overspringen.
11.6 De interactieve stap ontgrendelt niet
Symptoom: Een interactieve stap laat de gebruiker nooit verdergaan.
Oplossing: Het interactieve type past niet bij het element, of er is een vereiste waarde ingesteld en de gebruiker heeft niet precies die waarde ingevoerd (hoofdlettergevoelig). Stem het type af op de echte besturing en controleer de vereiste waarde nogmaals.
Naar boven12. Best practices
Als je maar een paar dingen uit dit artikel onthoudt, onthoud dan deze:
- Houd tours kort: vijf tot acht stappen winnen het van een marathon van twintig.
- Richt je op een id of stabiele class, nooit op fragiele diepe selectors die bij een upgrade breken.
- Stel altijd de URL en Extensies van de tour in zodat de tour alleen verschijnt waar hij hoort.
- Gebruik Autostart spaarzaam, en alleen voor echte eerste-keer-onboarding.
- Test autostart met een nieuwe gebruiker, want je eigen profiel onthoudt voltooide tours.
- Controleer je tours opnieuw na elke Joomla-update, want adminmarkup kan verschuiven.
- Gebruik toegangsniveaus om redacteuren en beheerders op dezelfde site verschillende tours te geven.
13. In het kort
ONDERDEEL Gebruikers → Guided Tours
STAPPEN Gebruikers → Guided Tours → [tour] → Steps
OPTIES Gebruikers → Guided Tours → Options
PLUGIN Systeem → Plugins → System - Guided Tours
TABELLEN #__guidedtours, #__guidedtour_steps
STATUS #__user_profiles (sleutel guidedtour.id.N)
STAPTYPES 0 next, 1 redirect, 2 interactive
INTERACTIEF 1 submit, 2 text, 3 other, 4 button,
5 checkbox/radio, 6 select
POSITIE top, bottom, left, right, center
BIBLIOTHEEK Shepherd.js (media/vendor/shepherdjs)
AUTOSTART vlag per tour + Options → Allow Tour Auto Start
VERTRAGING Options → Delayed Time (standaard 60 min)
API geen REST API; alleen interne ajax.fetchUserState
SINDS Joomla 4.3 (april 2023)
Naar boven14. Samenvatting
Guided Tours maakt van Joomla een zelfonderwijzend CMS. Met niets meer dan de backend kun je interactieve onboarding bouwen die de juiste knoppen markeert, de juiste velden uitlegt en zelfs wacht tot gebruikers een actie uitvoeren voordat het verdergaat.
De essentie om mee te nemen:
- Een tour is een container; zijn stappen zijn pop-overs, en beide zijn gewoon databaserijen die je in de admin bewerkt.
- Stappen komen in drie types (Next, Redirect, Interactive) met zes interactieve varianten voor hands-on tutorials.
- Targets zijn CSS-selectors; stabiele id's maken betrouwbare tours.
- Autostart plus de status per gebruiker in
#__user_profilesbetekent dat een tour nieuwe gebruikers een keer begroet zonder te blijven zeuren. - Het geheel wordt getekend door de plugin System - Guided Tours met Shepherd.js, en er is geen publieke REST API.
Goed gebouwd kan een handvol korte tours stil de meest voorkomende "hoe doe ik…"-vragen van je klanten wegnemen. Wil je geleide onboarding over een Joomla-site uitrollen, of heb je tours die na een upgrade kapot gingen en een vaste hand nodig hebben om de selectors te herstellen, dan loont het om iemand te hebben die weet waar elk van deze onderdelen zit.
Naar boven

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


