In der Dokumentation zu Drupal 8 sind die folgenden Hooks als diejenigen aufgeführt, die zum Implementieren eines Blocks erforderlich sind.
hook_block_access()
Steuert, welche Benutzer Zugriff auf einen Block habenhook_block_view_alter()
wird verwendet, um zu ändern, wie ein von anderen Modulen implementierter Block gerendert wirdhook_block_view_BASE_BLOCK_ID_alter()
ist eine Spezialisierung des vorangegangenen Haken, ähnlich zu dem, washook_form_FORM_ID_alter()
für die isthook_form_alter()
Was ich nicht finde, ist hook_block_info()
, dass in Drupal 7 die aus Modulen definierten Blöcke verfügbar gemacht werden dürfen und hook_block_view()
was aufgerufen wurde, als ein aus einem Modul definierter Block auf einer Seite gerendert wurde.
Wie legen Module in Drupal 8 Blöcke frei? Wie werden die Blöcke gerendert?
Antworten:
Am Beispiel des Blocks "Powered by Drupal":
Drupal 7
modules / system / system.module
Drupal 8
core / modules / system / src / Plugin / Block / SystemPoweredByBlock.php
Das
hook_block_info()
wird durch eine Anmerkung ersetzt , die alle erforderlichen Metadaten im@Plugin
Teil des Dokumentblocks enthält.hook_block_view()
wird durch dieBlockPluginInterface::build()
Methode ersetzt.Die Verzeichnisstruktur ist hier der Schlüssel. Alle Blöcke müssen in einem bestimmten Verzeichnis in ihrem Modulordner (src / Plugin / Block) abgelegt werden.
quelle