logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll
20/06/2025, by Ivan

Menu

Blöcke in Drupal 8 sind Instanzen von Block-Plugins.
Der Block-Manager von Drupal durchsucht Ihre Module nach Klassen, die die Annotation @Block enthalten.

Das folgende Beispiel verwendet die Annotation @Block mit den Eigenschaften „id“ und „admin_label“, um einen benutzerdefinierten Block zu definieren.

Erstellen Sie die Datei src/Plugin/Block/HelloBlock.php im zuvor erstellten Modulgerüst und fügen Sie den untenstehenden Code ein.

Damit Ihre Drupal-Seite diese neue Klasse erkennt, müssen Sie den Cache leeren.

<?php

namespace Drupal\hello_world\Plugin\Block;

use Drupal\Core\Block\BlockBase;

/**
 * Stellt einen 'Hello' Block bereit.
 *
 * @Block(
 *   id = "hello_block",
 *   admin_label = @Translation("Hello block"),
 *   category = @Translation("Hello World"),
 * )
 */
class HelloBlock extends BlockBase {

  /**
   * {@inheritdoc}
   */
  public function build() {
    return [
      '#markup' => $this->t('Hello, World!'),
    ];
  }

}

Um den „Hello block“ hinzuzufügen, gehen Sie zu Struktur -> Block-Layout (admin/structure/block) und klicken Sie auf die Schaltfläche „Block platzieren“, die jedem verfügbaren Bereich zugeordnet ist.

Wenn Sie auf „Block platzieren“ für einen Bereich klicken, erscheint ein modales Fenster mit einer Liste aller verfügbaren Blöcke. Um Ihren Block schnell zu finden, verwenden Sie einfach die Option „Nach Blocknamen filtern“ oder scrollen Sie, um den „Hello block“ zu finden. So können Sie beliebig viele Instanzen Ihres benutzerdefinierten Blocks an beliebigen Stellen Ihrer Website hinzufügen.

Fehlerbehebung

  • Der Klassenname und der Dateiname müssen übereinstimmen (Klasse HelloBlock und Datei /src/Plugin/Block/HelloBlock.php). Wenn der Klassenname abweicht, erscheint der Block zwar in der Liste verfügbarer Blöcke, lässt sich aber nicht hinzufügen.
  • Überprüfen Sie sorgfältig alle Pfade und Dateinamen. Ihre PHP-Datei muss sich im korrekt bezeichneten Verzeichnis (/src/Plugin/Block/) befinden, sonst erkennt Drupal sie nicht.
  • Wenn Ihr Block ohne Fehlermeldung nicht in den Bereich eingefügt wird, prüfen Sie die PHP/Apache-Fehlerprotokolle.
  • Wenn Ihr Block nicht in der Liste erscheint, leeren Sie unbedingt den Drupal-Cache (z. B. mit drush cr).
  • Stellen Sie sicher, dass die Namenskonvention Ihres Moduls komplett in Kleinbuchstaben ist. Einige Benutzer berichten, dass Blöcke für Module mit CamelCase-Namen nicht angezeigt werden. Zum Beispiel wird „myModule“ bestimmte Blöcke nie anzeigen, es muss „my_module“ sein. Dies wurde zuletzt mit Drupal 8.8.1 getestet.

Hinweis: Verwendung von Twig-Templates mit benutzerdefinierten Blöcken

1. Fügen Sie hook_theme in Ihre .module-Datei ein.
Hinweis: Nennen Sie die Funktion nicht 'block__...' – so werden keine Variablen an die Block-Templates übergeben. Verwenden Sie stattdessen den Modulnamen als Präfix.

2. Verwenden Sie in Ihrem Build-Methoden-Renderarray den Schlüssel „#theme“ und übergeben Sie Variablen auf derselben Ebene mit „#variablename“.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.