Er zijn maar weinig websites waar geen formulier op te vinden is. Voor Drupal 7 zijn er verschillende manieren om er eentje te bouwen, of je nu een simpel contactformulier of een complexe enquête bestaande uit meerdere pagina’s nodig hebt. In dit artikel vind je een korte introductie van drie interessante modules voor het maken van allerhande formulieren, waarbij we kennis maken met nieuwkomer entityforms.
Contact module: basic maar niet slecht
Het meest voorkomende formulier is natuurlijk het contact formulier. Een dergelijke functie is wel zo gangbaar dat het inbegrepen is in de standaard Drupal installatie, ga maar eens naar www.jouwsite.nl/contact
. Je hoeft alleen maar een menu koppeling in te schakelen (structuur > menu) en bezoekers kunnen naar hartenlust hun vragen stellen.
De standaard contact module bevat echter maar weinig extraatjes (zie structuur > contactformulier). Je kunt meerdere formulieren aanmaken en per formulier één of meerdere verschillende ontvangers instellen, maar je bent gebonden aan de velden naam, onderwerp en bericht. Wie meer wil dan dat komt al snel uit bij de Webform module.
Webform: ervaren rot
Webform gaat al een paar jaartjes mee en is een zeer populaire Drupal module voor het handmatig in elkaar zetten van formulieren. Na installatie verschijnt er een nieuw content type onder de naam Webform. Dit betekent dus dat je voor elk formulier een unieke node gaat aanmaken.
Elke webform node bevat een extra tabblad waarmee je de velden van het formulier en andere instellingen kunt bepalen. Je kunt hierbij o.a. kiezen uit tekstregels, radio buttons, selectielijsten of velden om bestanden te uploaden. Genoeg voor de meeste doeleinden.
Webform biedt verder een aantal handige opties. Zo kun je bijvoorbeeld per formulier bepalen welke rol gebruikers moeten hebben om het desbetreffende in te mogen vullen, hoe vaak dit mag per uur of in totaal mag, en of gebruikers een e-mail ontvangen ter bevestiging.
Doordat Webform automatisch een node aanmaakt wanneer iemand een formulier invult is het mogelijk om een overzicht te zien van de resultaten, en deze te downloaden als (excel) bestand. Het enige nadeel is dat de resultaten niet volledig uitwisselbaar zijn met andere modules zoals Rules en Views. Alleen Webforms zelf kan de ingevulde velden van een formulier uitlezen en weergeven.
Samenvattend is Webform een veilige keuze voor het bouwen van formulieren en biedt ze veel meer opties dan de standaard contact module. Het enige nadeel zou zijn dat de module niet volledig is geintegreerd met andere modules en dat het wat tijd kost om te begrijpen waar je alle opties kunt vinden.
Door haar populariteit zijn tientallen uitbreidingen voor Webform zoals Form Builder, een grafische UI waarmee je formulieren via een drag ’n drop systeem snel in elkaar kunt zetten en Webform Conditional Fields, waarmee je kunt aangeven dat bepaalde velden pas worden weergegeven afhankelijk van de keuze bij een voorafgaand veld.
Entityform: new kid on the block
Entityform is op het moment van schrijven nog maar een paar weken oud. Het doel van de module is om formulieren te kunnen maken met behulp van de standaard Drupal velden. Je bent niet zoals bij Webforms beperkt tot een bepaalde selectie van veld types. Heb je middels een module een video-upload veld toegevoegd aan Drupal dan kun je dit ook gebruiken in een formulier en zo video's naar je toe laten e-mailen door bezoekers.
Entityform voegt na installatie geen nieuw content type toe maar is te vinden onder structuur > Entityform Types. Hier kun je formulieren aanmaken, de velden bepalen en andere opties instellen. Deze opties zijn pakweg hetzelfde als die van Webform, je kunt de e-mail adressen van ontvangers instellen, de URL waar de bezoeker na het invullen naar toe worden verwezen, de rechten die je moet hebben om het formulier in te vullen, et cetera.
Door gebruik te maken van de standaard wijze waarop Drupal 7 velden toevoegd, zijn de resultaten van een formulier ook door andere modules te verwerken. Dit maakt het mogelijk om bijvoorbeeld een View te maken die alleen de resultaten van een specifieke checkbox laat zien. Er is na installatie standaard al een View aangemaakt met een overzicht van resultaten gesorteerd op datum. Deze is te vinden onder structure > Entityform submissions.
Entityform, dat nu nog in alpha fase verkeerd, is een module om in de gaten te houden. Je maakt er formulieren op dezelfde manier zoals je gewend bent om content types in elkaar te klikken. De resultaten zijn (hierdoor) per veld uit te lezen met behulp van andere modules zoals Views en Rules, wat uiteindelijk een stuk meer flexibiliteit geeft. Rules integratie is bijvoorbeeld handig als je wilt dat het invullen van een formulier leidt tot de registratie van degene die het formulier in heeft gevuld, waarbij de rol afhankelijk is van de waarde die is ingevuld bij een specifiek veld.
Conclusie
Waar de Webform module data uit formulieren bewust gescheiden houdt van andere Drupal gegevens, kiest Entityform juist voor volledige integratie. Persoonlijk gaat mijn voorkeur naar die volledige integratie, het vereist iets meer instel werk en ervaring met andere modules, maar daar krijg je wel meer controle voor terug. Webforms heeft op dit moment nog meer opties, met name wat betreft het exporteren van data. Daarbij zijn er veel uitbreidingen voor geschreven die er functies aan toevoegen. Entityform heeft juist minder speciale uitbreidingen nodig en zal daardoor de komende tijd wellicht een snelle groei meemaken. En voor wie het lekker simpel wil houden is er altijd nog de standaard contact module.