logo

Extra Block Types (EBT) - Nieuwe Layout Builder ervaring❗

Extra Block Types (EBT) - gestileerde, aanpasbare bloktypes: Slideshows, Tabs, Cards, Accordions en vele andere. Ingebouwde instellingen voor achtergrond, DOM Box, javascript-plugins. Ervaar vandaag al de toekomst van layout building.

Demo EBT-modules Download EBT-modules

❗Extra Paragraph Types (EPT) - Nieuwe Paragraphs ervaring

Extra Paragraph Types (EPT) - analoge op paragrafen gebaseerde set modules.

Demo EPT-modules Download EPT-modules

Scroll

Werken met de database in Drupal 7 – Les 1 – Drupal Database API

14/10/2025, by Ivan

Als je eerder modules hebt geschreven voor Drupal 6, zal het voor jou niet moeilijk zijn om over te stappen naar de nieuwe Database API van Drupal 7. De nieuwe DB API werkt op basis van de PHP-extensie PDO, waardoor het met verschillende databases kan werken, zoals MySQL, PostgreSQL, MSSQL en mogelijk Oracle. Wat eenvoud betreft, is het even wennen aan de nieuwe syntaxis — het schrijven van ruwe SQL-query’s blijft voor velen vertrouwd.

Hier is een stukje uit de officiële documentatie:

Werken met de database in Drupal 7 – les 2 – Databaseconfiguratie

14/10/2025, by Ivan

Het belangrijkste mechanisme om een databaseverbinding te definiëren in Drupal is de array $databases in het bestand settings.php. Zoals de naam al aangeeft, kun je via $databases meerdere databaseverbindingen configureren. Het ondersteunt ook het definiëren van meerdere targets (doelen). Een verbinding wordt pas geopend (de verbinding wordt pas werkelijk aangemaakt) wanneer een stuk code voor het eerst een query naar de database uitvoert.

Werken met de database in Drupal 7 – les 3 – Statistische query’s (SELECT)

14/10/2025, by Ivan

De meest gebruikte vorm van een query in Drupal is de statische query. Een statische query wordt letterlijk doorgestuurd naar de database. Alleen een SELECT-query kan statisch zijn.

Gebruik statische query’s uitsluitend voor zeer eenvoudige bewerkingen. Wanneer je complexe, dynamisch opgebouwde of later aan te passen query’s moet schrijven, gebruik dan dynamische query’s.

Een eenvoudige manier om een statische query uit te voeren is via de querymethode:

Werken met de database in Drupal 7 – les 4 – Dynamische query’s (SELECT)

14/10/2025, by Ivan

We zijn nu aangekomen bij het meest interessante deel van de Database API van Drupal: dynamische query’s. Ze worden “dynamisch” genoemd omdat Drupal de querystring automatisch uitbreidt tijdens de uitvoering. Alle query’s voor invoegen (INSERT), bijwerken (UPDATE), verwijderen (DELETE) of samenvoegen (MERGE) kunnen dynamisch zijn. Ook SELECT-query’s kunnen dynamisch of statisch zijn, maar het is aan te raden om ook voor SELECT-query’s dynamische query’s te gebruiken.

Werken met de database in Drupal 7 – les 6 – Een query dynamisch wijzigen (hook_query_alter)

14/10/2025, by Ivan

Een belangrijk kenmerk van dynamische SELECT-query’s is dat andere modules deze query’s “on the fly” kunnen wijzigen. Dit maakt het mogelijk voor andere modules om hun eigen instructies aan een query toe te voegen, waardoor ze het gedrag van de query kunnen beïnvloeden of bijvoorbeeld toegangsbeperkingen op nodes kunnen toepassen. Er zijn drie componenten voor het dynamisch wijzigen van query’s: tagging, meta data en hook_query_alter().

Werken met de database in Drupal 7 – les 8 – Insertquery’s (INSERT INTO)

14/10/2025, by Ivan

Insertquery’s moeten altijd gebruikmaken van de querybuilder. Sommige databases vereisen speciale handlers voor LOB’s (Large Objects, zoals TEXT in MySQL) en BLOB’s (Binary Large Objects). Daarom is een abstractielaag noodzakelijk, zodat de specifieke database-driver deze correct kan afhandelen.

Insertquery’s beginnen met de functie db_insert():

Werken met de database in Drupal 7 – les 9 – Updatequery’s (UPDATE)

14/10/2025, by Ivan

Updatequery’s moeten altijd gebruikmaken van de querybuilder. Verschillende databases hebben specifieke handlers voor LOB’s (Large Objects, zoals TEXT in MySQL) en BLOB’s (Binary Large Objects), waardoor een abstractielaag nodig is om per driver deze specifieke bewerkingen correct te verwerken.

Updatequery’s beginnen met de functie db_update():