By berliner , 15 August, 2026

Back in 2022, we upgraded an existing brochure-style site from Drupal 7. The project has been running in different forms for many years and has accumulated a few architectural ideas that worked well, as well as others that needed reconsideration.

This is the first in a series of posts about things I learned while rebuilding and further developing that site.

Most of the information displayed on the site comes from external data sources. Instead of writing and formatting narrative content, editors select from a library of data-driven widgets. These display maps, charts, lists or key figures and provide a limited set of configuration options.

By berliner , 9 February, 2023

Sometimes during development, you need to run the same post update hook repeatedly. Instead of resetting Drupals internal registry on already-run updates, we can also use drush to run a specific hook manually.

By berliner , 18 December, 2019

Quick and dirty on linux based systems:

mysql -u$DB_USER -p$DB_PASS -D$DB_NAME -h$DB_HOST -e "show tables" -s   \
  | awk \
    -v DB_USER=$DB_USER \
    -v DB_PASS=$DB_PASS \
    -v DB_NAME=$DB_NAME \
    -v DB_HOST=$DB_HOST \
    '{ print "mysql -u"DB_USER" -p"DB_PASS" -D"DB_NAME" -h"DB_HOST" -e \"DROP TABLE "$1"\""}' \
  | sh
By berliner , 10 May, 2017

The D8 project I'm currently working on used the file-system based workflow for configuration management. As our deployment workflow improved and got slightly more complex, we started to run into issues with file permissions during deployments and wanted to revert back to the database based workflow that is the default for a new D8 installation.

By berliner , 1 May, 2017

When trying to get the title of the current page manager panels page in Drupal 7 and drupal_get_title() isn't working, try this one:

$page = page_manager_get_current_page();
$page_title = $page['handler']->conf['display']->get_title();
By berliner , 26 July, 2014

The last months I was busy with a friends art project. Today I'm very happy to announce that it went public on july 15th and is doing good so far.

By berliner , 18 January, 2014

During the Drupal 8 port of my relatively new Mefibs module I realized that block creation in code got somewhat more complex than it used to be in Drupal 7 and earlier. It took me quite a while to figure out how this works, especially because there is not a lot of documentation for Drupal 8 yet. So I had to dig my way through core to see how it's done there and finally I got around it. The following is a comparison between how we used to do this in Drupal 7 and how it's done in Drupal 8.