How to make a Drupal 8 local task title dynamic

When defining local tasks (= tabs) in your Drupal 8 modules, you can specify a title for the tab via the 'title' property in your [MODULENAME].links.task.yml file.

However, in some cases you might want to make the task title dynamic, e.g. depending on the context of the entity where the tab is displayed.
This can be achieved by overriding the \Drupal\Core\Menu\LocalTaskDefault class with your own class for that tab.

Here is an example that uses a callback function to dynamically set the title, both for the route and the local task:


Using Drupal 8 contact forms via REST

While working on Narwhal CMS, our hosted decoupled / headless CMS service built on Drupal 8, a feature request that has popped up multiple times is the ability to have (contact) forms in the frontend application or website be processed by the Drupal backend through REST. Drupal 8 provides you with REST services and fieldable contact forms out of the box, but doesn't provide all the pieces to get this specific use case working. In the tutorial below I will show you how to implement this on your Drupal 8 website.

Announcing the Drupal Developer Days Brussels (4-6 Febr 2011)

After the awesome Drupal Design Camp in Prague where designers and themers from all over Europe gathered, it is now time to bring together Drupal developers for 3 days of Drupal geek madness! The organising team is thrilled to announce that the first European Drupal Developer Days conference will take place on Saturday and Sunday February 5th & 6th, 2011, at the Vrije Universiteit Brussel in Brussels, Belgium. This two day event will be preceded by a code sprint on Friday the 4th.

Thoughts on the Drupal Executives Meetup in Brussels

This weekend the first Drupal Executives Meetup (Drupal CXO) took place in Brussels. People in executive roles at Drupal shops from all over Europe gathered at the Microsoft offices to discuss and collaborate on various topics related to Drupal in a business environment.

Following the OpenSpace concept, I participated in a few sessions that were of interest to me. This blog post is my summary on 2 interesting topics that were discussed during various sessions. I enjoyed these most because some real action points came out of them.

Performing batch data operations on cron run (Drupal 6)

When I was recently challenged with the task to periodically import and update data coming from a SOAP webservice into Drupal nodes, I used the Drupal batch API for processing the imports without giving it much thought. When testing the process during development in my browser, everything was working as it should have been. At least that's what I thought...

Drupal User Group presentation: E-commerce in Drupal

On June 24th, we at Pure Sign organised a Drupal User Group meeting around the topic of E-commerce in Drupal. First, an introduction to setting up an Ubercart webshop was given by Hans Rossel. After that, Joachim De Schagt and I presented on more advanced Ubercart topics, and what the future of commerce in Drupal 7 will look like.

Click read more to find the presentation slides of this talk, which was in Dutch.

Implementing location proximity search (for Belgium) with Drupal and Google Maps

This tutorial will show you how create a Google Map with location pinpoints in Drupal 6, and how to let your users filter the map based on postalcode.

This walkthrough was written to create a map for Belgium, as I encountered some gotchas while doing so. However most of it will apply to other countries as well, and you might even skip some steps that are only required for the Belgium use case.

Permissions Lock module released

Today I released the Permissions lock module on This module allows you to have better control over what users having the 'administer permissions' permission can actually configure. By adding a lock to one or more permissions and / or user roles, you remove that permission / role from the permissions table at admin/user/permissions. Only users who are granted unrestricted access can then change these permissions anyway. This is specifically useful when you want to give certain users (e.g.