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

Een module maken in Drupal – snelle start

14/10/2025, by Ivan

Laten we beginnen met api.drupal.org. Open de pagina van de hook hook_node_presave(), die wordt uitgevoerd voordat een node wordt opgeslagen.

http://api.drupal.org/api/drupal/modules!node!node.api.php/function/hook_node_validate/7

Hooks stellen ons in staat om onze eigen code in het normale verloop van Drupal te integreren — we kunnen controles toevoegen, gegevensvelden, formulierelementen enzovoort.

Voeg onze module toe in de map sites/all/modules:

sites/all/modules/custom/

sites/all/modules/custom/custom.info

sites/all/modules/custom/custom.module

Schrijf in het bestand custom.info het volgende:

name = Custom
description = Custom
core = 7.x

In het bestand custom.module voegen we een controle toe om te verifiëren dat het body-veld niet leeg is. Als het veld leeg is, tonen we een foutmelding (hoewel we dit ook in de Drupal-beheerdersinterface verplicht hadden kunnen maken, maar goed...):

custom.module

<?php

function custom_node_validate($node){
  if(empty($node->body['und'][0]['value'])){
    form_set_error('node-body', 'Body is empty'); // Toon foutmelding en voorkom dat de node wordt opgeslagen
  }
}

In ons geval, wanneer de site slechts één taal heeft — namelijk und (undefined, niet-gespecificeerd) — controleren we het eerste textarea-veld van body (want het is mogelijk om meerdere tekstvelden toe te voegen voor een enkel veld).

Gebruik de module Devel en de functie dsm() om op het scherm de inhoud van een gewenst object of array weer te geven:

<?php

function custom_node_view($node){
  dsm($node);
}