Hallo! Ich bin Roger Pfaff.

Ich bin selbstständiger Drupal-Entwickler mit einem großen Interesse an selbstorganisierenden Systemen und Methoden, wie SCRUM und Holacracy. Ich setze mich für Open Source Software ein und nutze sie wann immer möglich.

Ach ja, man kann mich buchen. Ich biete meine Expertise in Beratung und in konkreter Arbeit an. Einfach kontaktieren!

Cookie Banner nerven, schon immer. Aber wie diese Banner derzeit genutzt werden ist mehr als nervig, sondern macht mich jedes einzelne Mal wütend. Ich habe mir die Top 20 Seiten in Deutschland angesehen und festgestellt, dass die meisten Seiten voll auf der dunklen Seite stehen.

Manchmal kommen wir bei Migrationen an Daten, die keine ein-eindeutige Id haben. Vielleicht ist das Glück aber wohlgesonnen und es gibt zwei oder mehr Felder, die eine Eindeutigkeit herstellen. Das kann mit der Migrate API genutzt werden. Hier am Beispiel einer CSV Datei.:

source:
  plugin: csv
  path: 'public://file-location.csv'
  delimiter: '|'
  header_row_count: 1
  ids: [id1,id2,id3]

Die ids(1,2,3) können verschiedene Typen haben und werden als String kombiniert ohne dass man sich darum sorgen müsste.

Im Web gilt ja grundsätzlich das Einmal klicken Gesetz, was aber von vielen Benutzern gerne ignoriert wird und es wird mindestens doppelt, wenn nicht manisch auf den Submit Button geklickt, was bei vielen Anwendungen zu unerwünschten Folgen führt.

Drupal bietet im Core schon eine JS basierte Funktionalität, die das verhindert und die kann in jedes Frontend über die libraries.yml eingebunden werden.

Vor einigermaßen langer Zeit wurde von der Band Magic Juhnke ein Song rausgebracht, der da lautete: "The aim of design is to define spaces". Ewig hab ich nicht mehr an das Lied gedacht, aber in meiner Facilitator-Rolle und der Beschäftigung mit New Work ist mir aufgefallen, dass dieser Satz neu geschrieben werden kann.

The aim of facilitation is to create spaces."

Um die Abhängigkeiten in Drupal abbilden zu können benutzen wir Composer. Das ist auch klasse, wenn jedes Modul ein Release hat, das einfach so installiert werden kann. Doch oft genug kommt es vor, dass man doch auf ein dev Release zurückgreifen muss und wenn man dann einfach ein

Dieses Jahr ist ein Jahr in dem ich immer öfter empfohlen habe nicht agil zu arbeiten. Obwohl ich absoluter Fan von agilen Arbeitsweisen bin.

Bei einem Auftrag hatte ich mit Commerce Produkten zu tun, die von einer Drupalseite zur anderen migriert werden mussten. Die Produkttypen waren nur in Details unterschiedlich und die Quelle bestand aus einer Liste mit einem Mix der Typen. Anfangs dachte ich noch, dass ich hier verschiedene Migrationen oder auch ein eigenes Plugin schreiben müsste. Zum Glück aber macht die Migrate API ein "loose coupling" und ignoriert fehlende Felder im Ziel einfach. So konnte ich eine Migration für alle Typen schreiben, die trotzdem funktionierte. Danke, Migrate API!

Um bei einer Route wie /node/6/edit oder /user/2/edit die Entity ID zu bekommen musst du nicht mit arg() arbeiten oder so. Stattdessen rufst du einfach die Funktion routeMatch() auf und bekommst gleich noch das ganze Objekt zurück.

$node = \Drupal::routeMatch()->getParameter('node');

$user = \Drupal::routeMatch()->getParameter('user');

 

Vor etwas mehr als 20 Jahren, Mitte der 90er, las ich mal ein Buch mit dem Titel "Der Planet schlägt zurück: ein Tagebuch aus der Zukunft.". Das Buch ist heute nur noch schwer zu kriegen (ein paar Auszüge gibt es hier) und es war damals kurz vor der Jahrtausendwende für jeden ein Weltuntergang dabei. Der Datumswechsel für die IT-Branche und der allgemeine Weltuntergang, weil ein neues Jahrtausend anbricht, für allgemeine Sekten.