20 coole Drupal modules voor site builders en developers | Juni 2019

10 Jun 2019

Joris Snoek - Business Dev
+31 (0)20 - 261 14 99

Ik wil graag zo veel op de hoogte blijven van alle beschikbare open source / 'contrib' Drupal modules. 'There's a module for that', dit geldt voor vele use cases binnen Drupal; een doodzonde om iets te bouwen wat al bestaat, of deels beschikbaar is. Wij houden de laatste module releases elke maand bij, hierbij wat ons opviel aan module updates de afgelopen maand:

1. Clientside Validation

De Form API van Drupal is zeer uitgebreid: het netjes bouwen, opmaken en ontwikkelen van formulieren in de breedste zin van het woord is verweven in het systeem. Daar zit standaard geen clientside validation in, simpel gezegd is dat: zodra een bezoeker een 'formulier-element' invoert (bijvoorbeeld zijn voornaam), wordt instant dat veld gevalideerd. En niet pas na het klikken op de 'Opslaan' button.

https://www.drupal.org/project/clientside_validation

2. Forms Steps

Genoeg aandacht voor formulieren op je website is essentieel, vaak zijn deze een conversiepunt en je wilt dat niks daarbij in de weg staat. Een multi-step form kan je conversieratio met 300% verhogen. Met deze module kan je in Drupal makkelijk zo'n formulier opmaken.

https://www.drupal.org/project/forms_steps

3. Better Search Block

Je kunt de standaard Drupal search box mooi maken: deze is namelijk prima overriden middels Twig templates. Maar wil je een minder technische aanpak, dan zou deze module kunnen helpen: deze biedt enkele configuratie opties als:

  • Instelbaar maken van enkele layout elementen
  • Instelbaar maken van de placeholder tekst
  • Mini animaties zodra een bezoeker in de box klikt.

https://www.drupal.org/project/better_search

4. Multiple Registration

Een krachtig rechten en rollen systeem is ingebakken in de Drupal core, maar biedt standaard maar één registratiepagina voor website bezoekers. Wanneer je verschillende registratiepagina's op je website wilt, voor verschillende rollen (bijvoorbeeld klanten en leveranciers), probeer dan deze module eens.

https://www.drupal.org/project/multiple_registration

5. Simple XML sitemap

Een XML sitemap is essentieel voor je website SEO. Er zijn meerdere Drupal modules die deze XML sitemap voor je genereren, maar deze lijkt meest populaire -met bijna 45.000 installs. Deze ondersteunt ook de laatste Google standaarden, betreffende meertalige content.

Googlebots will thank you later.

https://www.drupal.org/project/simple_sitemap

6. Advanced Text Formatter

Binnen de Drupal core kan ingesteld worden volgens welke View mode een ingevoerd tekst-veld getoond worden aan de website bezoeker, bijvoorbeeld 'default', 'teaser' of 'trimmed'. Wil je meer controle over de manier van tonen van de ingevoerde tekst, installeer dan deze module waardoor je per veld kunt configureren:

  • Tekst automatisch afkappen op een bepaald aantal karakters.
  • Toevoegen van een ellipsis (...), zodra een zin afgekapt wordt.
  • Altijd op geheel woord afbreken.
  • Tokens voor toevoegen van automatisch dynamische informatie.
  • Sta bepaalde html-tags toe.
  • Specifiek Text Format toepassen.

https://www.drupal.org/project/advanced_text_formatter

7. Menu Item Extras

Wil je extra velden toevoegen aan menu items? Installeer deze populaire module. Je kunt het zien als 'Fieldable menus', waardoor je allerlei extra informatie kan opslaan en weergeven bij een menu item.

https://www.drupal.org/project/menu_item_extras

8. Visitors

Wil je niet al je data aan Google weggeven? Of draai je Drupal als social intranet met privé data? Dan kan je deze module installeren om statistieken te genereren. Hij geeft rapportage over de bezoekers van je website, in diagrammen en overige tekstuele statistieken. Enkele van de beschikbare rapportages:

  • Pagina's die recentelijk bezocht zijn
  • Pagina's die vaan bezocht worden
  • Paginabezoekers per maand/week/dag
  • Totaal aantal bezoekers
  • Aantal unieke bezoekers
  • Aantal geregistreerde gebruikers
  • Bezoekers per land, stad
  • Aantal bezoeken van een pagina per stad

Voor de complete lijst, check de module pagina:

https://www.drupal.org/project/visitors

9. Geofield Map

Makkelijk mooie maps maken met behulp van deze Drupal module, hij is gebouwd op de populaire Geofield module en werkt in zowel het frontend als het backend met interactieve maps -wat het beheer voor content managers makkelijk maakt. De 2.x versie ondersteunt zelfs custom markers en afbeeldingen, gebaseerd op dynamische data van betreffende map. Bekijk hier een live demo.

https://www.drupal.org/project/geofield_map

10. Views Bulk Operations (VBO)

https://www.drupal.org/project/views_bulk_operations

Deze module bestaat al lang, maar kreeg onlangs weer een update. Middels Views kan je sinds Drupal 5 lijsten van content configureren in de breedste zin van het woord: een opsomming van in feite alles wat in Drupal leeft kan je ermee maken -van simpele blog overzichten tot complexe zoekpagina's met facets geïntegreerd in Solr.

Deze module breidt Views uit met de mogelijkheid om op alle items in zo'n lijst een actie uit te laten voeren: een 'bulk operation' als uitbreiding op deze beperkte functie van de Drupal core.

Een voorbeeld is het bulk editten van een selectie nodes. Ook bijvoorbeeld exporteren van data naar excel of csv is mogelijk middels deze aanvullende module.

11. Monolog

Drupal core kent een goed log, waarin je mededelingen, warnings en errors terug kunt vinden. Maar soms heb je meer rapportage nodig: deze module biedt integratie van de Monolog library- "Logging for PHP". Het integreert met Drupal Watchdog: het core log, waardoor de module werkt met met de Drupal core en contrib / open source modules.

https://www.drupal.org/project/monolog

12. Field Defaults

Je kunt in Drupal je content model configureren met behulp van content types en fields. Na/tijdens deze configuratie bouw je je website, waarna je hem gaat vullen met content. Soms komt de content manager er na enige tijd achter dat er nog een extra field nodig is (bijvoorbeeld een 'Intro Text'). Je kunt dat field dan makkelijk toevoegen in Drupal, maar dan is bij alle bestaande content items dat veld leeg. Daar komt deze module van pas: zodra je een nieuw veld aanmaakt kan deze automatisch alle bestaande content aanvullen met een gekozen default value voor betreffende field.

https://www.drupal.org/project/field_defaults

13. Allow site iframing

Om veiligheidsredenen met mag een website niet binnen een i-frame laden, de Drupal core verbiedt dat standaard. Wil je dit intentioneel toch omzeilen, dan biedt deze mini module de uitkomst.

https://www.drupal.org/project/allow_iframed_site

14. Upgrade Status

Een module die werd genoemd in de Keynote van Drupal lead Dries Buytaert op afgelopen DrupalCon. Specifiek voor Drupal 8 installaties: deze module scant alle code en rapporteert of er 'deprecated code' in staat. Dat is code die in Drupal 9 niet meer werkt, simpel gezegd. Om in later stadium een upgrade naar Drupal 9 makkelijk te maken is belangrijk om geen deprecated code meer te hebben, deze module geeft daar een dus mooi inzicht in. Tevens: als je de juiste IDE gebruikt, geeft dat inline bij de code ook meteen aan.

Bekijk dit direct in de Driesnote

https://www.drupal.org/project/upgrade_status

15. Views Bulk Edit

Een aanvulling op de Views Bulk Operations module: zorgt voor het bulk updaten van 'entity values': bijvoorbeeld ingevulde tekst-velden in content item, of categorisering middels Taxonomy

https://www.drupal.org/project/views_bulk_edit

16. Mobile Device Detection

Tegenwoordig wordt de responsive layout van je website bepaald in het frontend: de html/css/js bepaalt hoe het er uit komt te zien op een bepaalde formaat scherm en bepaalt tevens of er bepaalde blocks zichtbaar zijn of niet.

Wil je dit nou persé afvangen op basis van apparaat van de website bezoeker, bekijk dan eens deze module. Afhankelijk van het apparaat kan je bepaalde Drupal blocks wel of juist niet laten tonen aan de website bezoeker, op basis van apparaat dus.

https://www.drupal.org/project/mobile_device_detection

17. Quick Link

Naar aanleiding van dit blog op het spoor gekomen: deze module biedt een implementatie van de Quicklink library van Google Chrome Lab voor Drupal. Quicklink is een lichtgewicht JavaScript library (gecomprimeerd minder dan 1 kb) die snellere opeenvolgende pagina loads mogelijk maakt door in-viewport links alvast te volgen.

Hoe Quicklink werkt
Quicklink doet pogingen om navigatie naar volgende pagina's sneller te laten verlopen. Het:

  • Detecteert links binnen de viewport (met behulp van Intersection Observer)
  • Wacht totdat de browser inactief is (met requestIdleCallback)
  • Controleert of de gebruiker geen trage verbinding heeft.
  • Prefetchen van URL's naar de links (met behulp van
    of XHR).

Under construction
De module pas net uit en nog onder heavy construction momenteel, maar absoluut one to watch.

https://www.drupal.org/project/quicklink

18. Freelinking

Een 'lossere' manier voor content managers om links aan te maken. Standaard moet je een 'harde' link naar een pagina invoeren, maar na installatie van deze Drupal module kan je ook gebruik maken van bijvoorbeeld de pagina titel, in dat geval voer je in: [[nodetitle:Title of the Page]].

Deze module maakt daar automatisch een werkende link van.

https://www.drupal.org/project/freelinking

19. Hook Event Dispatcher

Er zijn meerdere artikelen te vinden over waarom je Drupal events of Drupal hooks zou moeten gebruiken. Ze zitten beide in Drupal 8, hooks stammen uit het legacy tijdperk (Drupal 7 en eerder) en events vinden oorsprong uit het Symfony framework waar Drupal 8 op gebouwd is. De maker van deze module vindt dat het hook systeem outdated is, maar dat is dus een ongoing discussie.

Anyway, deze module zorgt ervoor dat Drupal enkele hooks als events dispatcht, zodat die hooks dus als events geïmplementeerd kunnen worden. Omdat dat die manier van implementatie beter zou zijn. Het gaat onder andere om:

  • Entity hooks
  • Form hooks
  • Preprocess hooks

https://www.drupal.org/project/hook_event_dispatcher

20. Modules weight

Drupal voert code in modules uit op volorde van weights van modules. De module die met de hoogste laagste weight wordt als eerste uitgevoerd. Hierdoor kan het voorkomen dat een bepaalde stukken code elkaar overschrijven, omdat ze dezelfde soort toepassing hebben. Het is niet mogelijk in te stellen welke code dan voorrang heeft, met behulp van het instellen van de module weight dus wel.

In de 'early Drupal 7 days' deden we dit met de hand: direct in de database de waardes van de weights aanpassen, nu is er een module voor waarmee je dit simpelweg kunt configureren, nice:

https://www.drupal.org/project/modules_weight

Wrap up

That's it, voor deze maand dan. Hopelijk ben je weer goed op de hoogte van de laatste module releases en gaat het je veel werk schelen omdat 'there is a module for that'. Volgende maand weer een xx coole Drupal modules -stay tuned!

Comments

Nóg meer
kennis nodig?

Check ons ons blog archief >