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

6.3. Maak je eigen Drupal-thema op basis van het Stable-thema.

17/10/2025, by Ivan

Vanaf dit artikel gaan we ons eigen thema maken in Drupal. In dit gedeelte van de handleiding zullen we de basisprincipes van theming in Drupal bespreken — waar alles zich bevindt, hoe je CSS en JavaScript kunt toevoegen en gebruiken. Ons thema zal gebaseerd zijn op het Stable-basisthema uit de core. Als je Drupal wilt leren, is Stable een geweldige start. Je moet niet beginnen met Bootstrap, want je zult voortdurend vragen en fouten tegenkomen. In het volgende gedeelte van de handleiding, met onze kennis van het maken van thema’s in Drupal, gaan we werken met Bootstrap.

Hier is de officiële documentatie:

https://www.drupal.org/theme-guide/8

Maak een map aan voor ons thema

We plaatsen alle nieuwe thema’s in de map /themes. Je kunt, zoals in Drupal 7, thema’s plaatsen in sites/all/themes, maar het is beter om de nieuwe Drupal-structuur te gebruiken en thema’s direct in de map /themes te plaatsen.

Ik maak de map /themes/drupalbook aan, jij kunt je thema een andere naam geven als je wilt:

thema map

Maak een bestand met basisinformatie aan: drupalbook.info.yml

In de map van ons thema maken we het bestand theme_name.info.yml aan:

drupalbook.info.yml

Dit artikel geeft gedetailleerde informatie over het YAML-formaat:

https://en.wikipedia.org/wiki/YAML

Let op twee belangrijke punten:

1) Gebruik geen tabs voor inspringing, alleen spaties.

2) Inspringingen moeten minstens één spatie zijn (dus name: value, niet name:value).

Voeg in het bestand drupalbook.info.yml het volgende in:

name: Drupalbook
type: theme
base theme: stable
description: Mijn eerste Drupal-thema.
core: 8.x
core_version_requirement: ^8 || ^9
libraries:
  - drupalbook/global-styling
regions:
  header: Header
  content: Content  # Deze regio is verplicht
  sidebar_first: 'Sidebar first' # Vergeet de aanhalingstekens niet
  footer: Footer

Laten we bekijken wat elke regel betekent:

name – de naam van ons thema. De machinale naam van het thema is de naam van de map en het bestand drupalbook.info.yml, dus drupalbook.

type – het projecttype in Drupal, in dit geval een theme.

base theme – we erven van het Stable-thema. Als het thema volledig vanaf nul is opgebouwd, schrijf dan false.

description – een beschrijving van het thema die wordt weergegeven in het beheerpaneel.

core – de versie van de Drupal-core waarvoor dit thema is bedoeld.

libraries – hier voegen we bibliotheken toe aan ons thema. Dit doen we via een apart bestand drupalbook.libraries.yml. Let op de naam global-styling, die we daar zullen gebruiken.

regions – de regio’s van ons thema. De regio content is verplicht — Drupal toont de inhoud via deze regio. Als een regio-naam uit meerdere woorden bestaat, plaats die dan tussen aanhalingstekens. Machinale namen worden geschreven met underscores.

Maak nu de bibliotheek voor ons thema aan

Bestand: drupalbook.libraries.yml

Voeg de volgende regels toe aan drupalbook.libraries.yml:

global-styling:
  version: 1.x
  css:
    theme:
      css/style.css: {}
      css/print.css: { media: print }
  js:
    js/custom.js: {}
  dependencies:
    - core/jquery

En laten we nu regel voor regel uitleggen wat dit betekent:

global-styling – dit is precies de naam die we eerder in drupalbook.info.yml hebben opgegeven.

css – hier voegen we CSS-bestanden toe. Merk op dat we voor de printversie van de site media: print hebben opgegeven.

js – hier voegen we JavaScript-bestanden toe. jQuery is optioneel in Drupal, dus als we jQuery willen gebruiken in onze aangepaste scripts, moeten we dit toevoegen als afhankelijkheid:

dependencies:
  - core/jquery

Maak de mappen css en js aan en plaats de bestanden erin:

css/style.css

css/print.css

js/custom.js

Aangezien we erven van het Stable-thema, erven we ook de templates daarvan. Ga nu op onze site naar het gedeelte Weergave (Appearance):

/admin/appearance

Leeg de cache en schakel ons thema in:

Thema inschakelen

Nu is ons nieuwe Drupalbook-thema actief op onze site:

Drupalbook thema