'Simple Like Button' vrijgegeven als Drupal module | Een toelichting op het custom AJAX-form en de implementatie van een custom entity.

11 Jul 2020

(Available for projects)
Joris Snoek
Freelance Drupal
Consultant & Developer

Tijdens de ontwikkeling van OpenLucius bouwde ik aardig wat features, die in het product zijn ingebed (een open source Drupal distributie). Maar we dachten dat sommige hiervan handig kunnen zijn voor andere Drupal site-eigenaren om te gebruiken, buiten het Drupal install profile.

Dus hierbij de release die ik heb gedaan: Simple Like Button, een zeer simpele Drupal module die na twee stappen direct werkt:

  1. Installeer module
  2. Plaats block
  3. Klaar!

Features

  • Direct feedback voor eindgebruikers: telling van Likes +1 of -1
  • Voegt namen toe van gebruikers die de inhoud liketen
  • Compatibel met alle custom Drupal entities en bundles
  • Compatibel met alle 'authenticated' rollen, niet met 'anonymous'.
  • Momenteel niet compatibel met Views (non-feature).

Gebouwd met een custom Drupal AJAX-form

Het is gebouwd met een custom AJAX form, dus we hoeven ons geen zorgen te maken over het bouwen van een custom AJAX-route, een CSRF-token en aangepaste JavaScripts om de gebruikersinteracties af te handelen.

Terwijl CSRF access control eruit ziet alsof het gemakkelijk kan worden geïntegreerd via xyz.routes.yml, ajax-form bleek eenvoudiger te implementeren.

Nadeel is dat alle formulieren in de cache kunnen worden opgeslagen en dat een site met een veel content kan leiden tot onnodig veel cache data.

Als je het niet eens bent met deze aanpak, laat het me dan weten in de reacties.

Dus als je op zoek bent naar een compact voorbeeld voor het implementeren van een AJAX-formulier, bekijk dan de code van deze module of het voorbeeld in deze blog.

Gebouwd met een custom Drupal entity

We gebruikten een Drupal entity voor data beheer:

  • Het definiëren van het gegevensmodel en de databasetabel, eenvoudig te installeren.
  • CRUD: de Create, Read, Update and Delete queries zijn eenvoudig als je met custom Drupal entities werkt.

Dus als je op zoek bent naar een compact voorbeeld van het implementeren van een custom entity, bekijk dan de code van deze module.

En als je het hier niet mee eens bent om hier een custom Drupal entity te gebruiken, laat het me dan weten in de reacties hieronder.

Download de module

Kijk dan op de projectpagina op Drupal.org

Comments

Nóg meer
kennis nodig?

Check mijn blog archief >