Drupal 7 cursus deel 3: Menu’s en gebruikersbeheer

Je hebt in deel 1 en 2 van de cursus Drupal 7 de basis gelegd voor een site. In dit derde deel bouw je verder aan de menu’s, geef je gebruikers de mogelijkheid om in te loggen en content toe te voegen en voeg je een contactformulier toe.

De vorige keer heb je je vooral gericht op ‘echte content’: je hebt verschillende soorten pagina’s toegevoegd. De site bevat nu gewone artikelen, blogpagina’s en – omdat je in Drupal niet vastzit aan meegeleverde standaardpagina’s – een inhoudstype op maat, in ons geval ‘Autodatabase’.

Kortom, je hebt nu een prima basis voor een website die kan groeien en groeien. Maar er is nog genoeg te doen. Zo zijn de navigatiemenu’s nogal rommelig, dus is het hoog tijd om die beter in te delen. Verder heb je tot nu toe je alle voorbeeldcontent zelf toegevoegd, maar bij een clubwebsite ligt het voor de hand dat ook anderen mogen bijdragen. Daarom leer je ook hoe je nieuwe gebruikers toevoegt en ze toegangsrechten geeft.

Tot nu toe bevat de site alleen nog maar gewone, ‘platte’ pagina’s met tekst en plaatjes. Het mooie van een cms is dat je gemakkelijk extra functionaliteit toevoegt, zoals een contactformulier waarmee bezoekers reacties kunnen sturen.

Standaard wordt er met Drupal een contactformulier meegeïnstalleerd, je hoeft dat alleen nog in te schakelen. Ga naar Modules, zet een vinkje bij de module Contact en sla je aanpassing op. Klik nu in de menubalk op Structuur, Contactformulier en bewerk de standaardgegevens. Bij Categorie kun je bijvoorbeeld invullen: Informatieaanvraag.

Bij Ontvangers staat het mailadres van de sitebeheerder; standaard stuurt het formulier een mail naar dat adres. Bij Automatisch antwoorden voeg je een boodschap toe die de verzender te zien krijgt (bijvoorbeeld ‘Bedankt voor uw mailtje. U krijgt zo snel mogelijk een reactie.’). Daarmee is het contactformulier klaar voor gebruik.

Om het formulier zichtbaar te maken voor de bezoeker, staat er al een link in het menu Navigatie. Ook die moet je nog inschakelen. Ga naar Structuur, Menu’s. Klik op Links weergeven bij het menu Navigatie. Helemaal onderaan staat Contact. Zet een vinkje in de kolom Ingeschakeld en sla je instellingen op.

Nog een allerlaatste horde: de link Contact verschijnt nu alleen wanneer je bent ingelogd als beheerder. Gewone gebruikers krijgen de link Contact niet te zien, omdat die gebruikersgroep standaard niet het recht heeft om het contactformulier te gebruiken. Dat is eenvoudig te verhelpen via de pagina Toegangsrechten, die je inmiddels kent.

Ga naar Personen, Toegangsrechten en zet een vinkje bij Use the site-wide contact form voor Anonieme gebruiker en Geverifieerde gebruiker. Sla op en log uit. Gelukt! De link Contact verschijnt onder in het Navigatiemenu en leidt naar een contactformulier.

Contentbeheerders laten inloggen

Tot nu toe heb je zelf aan de site gewerkt. Standaard is er immers maar één gebruiker die kan inloggen op de site: jij, de beheerder. Maar hét grote voordeel van elk cms is natuurlijk dat je er niet alleen voor staat. Je kunt net zoveel gebruikers aanmaken als je wilt en ook hen het recht geven om in te loggen en content te beheren. Daarbij kun je precies kiezen wat die gebruikers wel en niet mogen: bijvoorbeeld alle denkbare content toevoegen. In dit voorbeeld stellen we een webteam samen van een paar gebruikers die het recht krijgen om één paginatype te updaten: de autodatabasepagina’s.

Om een nieuwe gebruiker toe te voegen, maak je allereerst een rol aan. Een rol wil zeggen: een op maat gemaakte combinatie van rechten die je kunt toekennen aan gebruikers. Om een rol aan te maken, klik je in de menubalk van de administratieve overlay op Personen, tab Toegangsrechten. Klik vervolgens op Rollen. Nu krijg je een overzicht van de standaardrollen in Drupal 7: anonieme gebruiker, geverifieerde gebruiker en administrator. In het invulvak daaronder vul je een naam in van de nieuwe rol, in dit voorbeeld Database-redacteur. Klik op Rol toevoegen.

De nieuwe rol verschijnt nu in de lijst. Klik op de link Toegangsrechten bewerken. In de lange lijst die je nu ziet, staan alle denkbare toegangsrechten. Hier vink je aan wat de nieuwe leden van je webteam mogen. In dit geval willen we dat alleen het contenttype Autodatabase door de redacteur mag worden bewerkt. Scrol door de lange lijst tot je een aantal permissies ziet die te maken hebben met het node-type Autodatabase: Nieuwe inhoud aanmaken, Eigen inhoud bewerken, Alle inhoud bewerken, Eigen inhoud verwijderen, Alle inhoud verwijderen. Zet een vinkje bij de rechten die je de Database-redacteur wilt geven.

Waarschijnlijk wil je alles toestaan, maar wees voorzichtig: Alle inhoud verwijderen is een gevaarlijke optie, die één lid van het webteam in staat stelt om per ongeluk alle Autodatabase-bijdragen te wissen. Dat voorrecht kun je het beste laten bij personen met de rol van administrator. Sla de nieuwe set toegangsrechten op. Je hebt een rol gecreëerd, dus nu ga je personen toevoegen die deze rol hebben.

Contentbeheerders toevoegen

Ga terug naar de Personen in de menubalk en klik op Gebruiker toevoegen. Vul de verplichte velden in: naam, mailadres, wachtwoord. Ten slotte zet je bij Rollen een vinkje om de nieuwe gebruiker de rol Database-redacteur te geven. Daarmee zijn alle vereiste instellingen klaar: klik onderaan de pagina op Nieuwe account aanmaken. Als je nu klikt op de menulink Personen, zie je dat er twee gebruikers zijn: naast jijzelf (admin) staat Jan Redacteur in de lijst.

Tijd om uit te proberen of het werkt: klik in de administratieve overlay op Uitloggen. In het blokje Gebruikerslogin op de homepage log je nu in met de gegevens van de nieuwe gebruiker. Ogenschijnlijk is er niets veranderd, maar dat komt omdat de ingelogde redacteur maar één type pagina mag bewerken. Klik in het menu Navigatie op Autodatabase en bekijk één van de artikelen uit de database om te zien wat de ingelogde gebruiker mag. Er is nu een tab Bewerken zichtbaar bij elke pagina van het type Autodatabase. Hij kan dus elke bijdrage direct aanpassen.

Zodra de ingelogde redacteur klikt op Bewerken, verandert de webpagina in een editor. Ook kan de redacteur nieuwe content aan de autodatabase toevoegen, via de link Inhoud toevoegen in het menu Navigatie.

Zelfregistratie mogelijk maken

Je hebt nu een nieuwe gebruiker toegevoegd, en op dezelfde manier kun je meer leden aan de webredactie toevoegen. Maar misschien wil je ook bezoekers de mogelijkheid geven om in te loggen, zodat ze bijvoorbeeld commentaar mogen geven op artikelen.

Dat regel je niet via Personen, maar via Instellingen. Ook daar vind je een (ander!) kopje Personen. Klik op Accountinstellingen: nu kun je alle algemene instellingen kiezen voor gebruikersregistratie. Standaard is al een methode van gebruikersregistratie actief: bezoekers kunnen zich registreren, maar elke registratie moet door de beheerder worden goedgekeurd.

Je kunt er ook voor kiezen om bezoekers zich direct te laten registreren zonder jouw tussenkomst. Zorg er wel voor dat aangevinkt is dat nieuwe gebruikers een procedure van e-mailverificatie moeten doorlopen. Dat maakt de kans wat kleiner dat spambots zich aanmelden als lid.

Vanaf nu kunnen bezoekers zich aanmelden via de link Account aanmaken in het blokje Gebruikerslogin op de homepage. Als je wilt zien (of veranderen) wat die ingelogde gebruikers allemaal mogen op de site, ga je naar de overzichtspagina Personen, Toegangsrechten. Je vindt hun rechten in de kolom Geverifieerde gebruikers.

Een cms is geen fotobewerkingsprogramma, maar Drupal 7 doet toch zijn best om wat meer afbeeldingsopties te bieden dan de concurrentie. Je kunt nauwkeurig instellen hoe afbeeldingen in bijvoorbeeld artikelen moeten worden getoond. In een vast formaat, verkleind, bijgesneden, zwart-wit, geroteerd?

Er kan heel veel met de handige Image styles (Afbeeldingsstijlen), die je zelf kunt samenstellen. Op die manier kun je ervoor zorgen dat iemand die een artikel of basispagina toevoegt, daarbij een passende afbeeldingsstijl gebruikt. Handig als je bijvoorbeeld een smoelenboek wilt maken van clubleden en alle afbeeldingen verkleind wilt afbeelden.

Hoe maak je zo’n smoelenboek? Klik op Instellingen in het beheermenu en ga naar Image styles. De standaard beschikbare afbeeldingsstijlen komen in beeld, zoals thumbnail, medium en large. Die kun je aanpassen, maar voor dit geval maken we een nieuwe stijl. Klik op Stijl toevoegen en geef de nieuwe stijl een naam, bijvoorbeeld ‘portretfoto’.

In het volgende scherm kun je aan de hand van een voorbeeldfoto instellen hoe afbeeldingen met deze nieuwe stijl eruit moeten zien. In de dropdownlijst met effecten kies je voor Bijsnijden. Zo bepaal je bijvoorbeeld dat elk portret wordt bijgesneden tot 200 x 300 pixels. Zodra je het effect opslaat, wordt dat zichtbaar in de voorbeeldweergave. Je kunt net zoveel effecten op elkaar stapelen als je wilt, bijvoorbeeld de verzadiging verminderen (Desaturate) en de afbeeldingshoek aanpassen (Rotate).

Hoe zorg je ervoor dat zo’n afbeeldingsstijl beschikbaar komt voor gebruik in de inhoudstypen op de site? Als je de afbeeldingsstijl voor bijvoorbeeld alle artikelen of blogbijdragen wil aanpassen, bewerk je dat bestaande inhoudstype (Structuur, Inhoudstypen, Weergave beheren). Dan kies je de afbeeldingsstijl die hoort bij dat inhoudstype.

Echter in dit specifieke geval heb je een nieuw afbeeldingstype aangemaakt voor een nog te creëren inhoudstype: een smoelenboekpagina. Die maak je op dezelfde manier als het inhoudstype Autodatabase uit deel 2 van deze cursus. Het recept in het kort: via Structuur, Inhoudstypen maak je een nieuw inhoudstype Smoelenboek, waar je als één van de pagina-elementen een afbeelding aan toevoegt. Sla dit nieuwe inhoudstype op en kies dan de nieuwe afbeeldingsstijl portretfoto via de opties van Weergave beheren. Het resultaat zie je zodra je een pagina van het type Smoelenboek hebt gemaakt: de portretfoto verschijnt gekanteld en bijgesneden.

Standaard submenulinks maken

Je kunt ook submenulinks vanuit het inhoudstype regelen. Dan hoef je de link niet achteraf te verplaatsen, maar komt hij al bij het maken van de pagina goed terecht. Neem bijvoorbeeld het inhoudstype Autodatabase: stel dat je wilt dat nieuwe pagina’s van dat type altijd als submenu-items verschijnen onder de hoofdlink Autodatabase. Dat kan: open het inhoudstype Autodatabase en kies bij Menu-instellingen voor Autodatabase als default parent item (standaard bovenliggend onderdeel) . Sla je aanpassing op.

Als je nu een nieuwe autopagina aanmaakt en je maakt daarbij een menulink aan, dan komt die link automatisch terecht op de juiste locatie in het menu. Gemakkelijk, want het vermindert de kansen op fouten bij het aanmaken van content en menu-items én het bespaart geschuif met menu-items achteraf.

Menulinks maken vanuit een menu

Tot nu toe heb je menulinks gemaakt direct bij het toevoegen van een nieuwe pagina. Je kunt menulinks ook toevoegen op een andere manier: via Structuur, Menu’s, Link toevoegen. Maar daar kleeft een nadeel aan: je moet dan zelf de url invullen van de bestemming van de nieuwe menulink.

Jammer genoeg kun je niet bladeren door de beschikbare doelpagina’s (artikelen). Maar het probleem is wel te omzeilen: blader in een tweede browsertab naar de gewenste doelpagina en kopieer de url zonder de domeinnaam, bijvoorbeeld node/12. Vervolgens plak je dat Drupal-pad in het venster waar je de nieuwe link aanmaakt.

Je kunt nu dus kiezen of je nieuwe artikelen toevoegt aan het horizontale hoofdmenu of aan het verticale menu Navigatie. Op dezelfde manier kun je andere inhoudstypen (zoals blogbijdragen) aanpassen om de menuopties bij te stellen. Maar natuurlijk kun je menu’s niet alleen aanpassen vanuit de content; je kunt ook de menu’s zelf bewerken.

Hoe dat werkt, proberen we uit met het verticale menu. Dat ziet er rommelig uit, de volgorde is onlogisch. Om meer structuur aan te brengen, kiezen we ervoor het menu in te delen in hoofd- en submenu-items. Dat doe je als volgt: ga naar Structuur, Menu’s, Navigatie, Links weergeven. Je kunt trouwens ook hetzelfde doel bereiken door met je muis over het navigatiemenu te gaan. Klik op het tandwieltje dat zichtbaar wordt rechts bovenaan het menu en klik op Links weergeven.

Er verschijnt een popupvenster waarin je het menu kunt ordenen. Om submenulinks aan te maken, sleep je de menulinks naar de gewenste positie. De link naar de pagina Autodatabase staat goed: dat is een pagina op hoofdniveau. Maar de links naar pagina’s uit die database moeten één niveau lager terechtkomen, ze worden dus een submenu.

In het afgebeelde voorbeeld zijn de links Citroen 2CV en Citroen DS gesleept naar het subniveau onder Autodatabase. Dat is te zien aan de inspringing: hoofdlinks staan helemaal aan de linkerkant, sublinks springen een positie in.

Als je de wijzigingen in dit scherm opslaat, zie je de veranderingen aan de voorkant van de site. Autodatabase is een uitklapbaar hoofditem. Klik je erop, dan worden submenulinks zichtbaar.

Standaard heeft Drupal 3 menu’s: het hoofdmenu (Main Menu), het gebruikersmenu (User Menu) en het horizontale navigatiemenu (Navigation).

Tot nu toe heb je een aantal nieuwe menulinks gemaakt: steeds als je bijvoorbeeld een artikelpagina toevoegt (via Inhoud, Inhoud toevoegen, Artikel), kun tegelijkertijd een menulink laten invoegen naar die nieuwe pagina. Dat is mooi, maar standaard heeft het wel een beperking. Als je een artikel maakt, kun je vandaar uit alleen een menulink aanbrengen in het horizontale hoofdmenu. Het andere menu (Navigatie) is niet beschikbaar. Onhandig, want je wilt natuurlijk zelf kunnen kiezen aan welk menu je een nieuw artikel koppelt.

Vanwaar die beperking? Dat heeft te maken met de specifieke instellingen van het inhoudstype Artikel. Maar Drupal zou Drupal niet zijn als we zulke standaardinstellingen niet volledig konden aanpassen. Dus als je wilt dat menulinks naar artikelen in verschillende menu’s kunnen terechtkomen, dan pas je eenvoudig het inhoudstype Artikel aan.

Hoe dat werkt, heb je al gezien toen je in de vorige aflevering een eigen inhoudstype aanmaakte: Autodatabase. Toen heb je geselecteerd welk menu de menulinks zou bevatten naar die Autodatabasepagina’s. Op dezelfde manier kun je de menuopties van het inhoudstype Artikel aanpassen: ga naar Structuur, Inhoudstypen en kies bij Artikel voor Bewerken.

Bij Menu-instellingen vind je de beschikbare menu’s. Verander die nu door én het Hoofdmenu (het horizontale topmenu) én het menu Navigatie (in de linkerkolom) te selecteren. Sla je wijzigingen op. Vanaf nu heb je als je een artikel toevoegt, de keuze in welk menu jouw bijdrage opduikt.

Probeer het maar uit: we hebben nog een artikel nodig dat de bezoekers uitlegt wat de Autodatabase precies inhoudt. Ga naar Inhoud, Inhoud toevoegen en maak een artikel aan. Neem een titel op (Lees alles over auto's in de autodatabase) en vul wat tekst in (in ons voorbeeld: ‘Geïnteresseerd in klassieke auto's? Kijk dan rond in de autodatabase!’).

Desgewenst kun je een afbeelding invoegen. Tot slot heb je nu onderaan het scherm, bij Menu-instellingen, de keuze om een link toe te voegen naar een menu naar keuze: Hoofdmenu of Navigatie. Kies hier voor Navigatie en sla je aanpassingen op. Op de site zelf zie je nu dat het menu Navigatie een link Autodatabase bevat, die leidt naar het artikel.

Deel dit artikel
Voeg toe aan favorieten