it-swarm.com.de

hook_page_alter in Drupal 8

Ich versuche, auf jeder Seite eine twig Vorlage) anzuhängen. In drupal 7) hängen wir sie grundsätzlich mit hook_page_alter An.

      function hook_page_alter(&$page) { 
      $page['page_bottom']['devel']= array( 
            '#type' => 'markup', 
            '#markup' => '<div style="clear:both;">' . theme('TEST') . '</div>', );  //add test template on every page at bottom position
 } 

aber in drupal 8 gibt es keinen hook_page_alter, denke ich.

Wie macht man das??

3
NeiL

hook_page_alter in Drupal 8:

Gemäß dem Änderungsdatensatz Hook_page_attachments (_alter) () hinzugefügt und hook_page_build/alter () entfernt, sollten Sie hook_page_bottom verwenden :

function hook_page_bottom(array &$page_bottom) {
  $page_bottom['mymodule'] = ['#markup' => 'This is the bottom.'];
}

Sie haben ein anderes Problem, theme () ist nicht mehr verfügbar. Dies ist jedoch eine andere Frage, da unklar ist, was Sie damit versuchen. Wahrscheinlich sollten Sie die Vorlage in einem Render-Array verwenden $page_bottom['mymodule'] = ['#theme' => 'TEST'];.

In D8 sind jetzt alle Seitenelemente in Blöcken. Der beste Ansatz wäre, den zusätzlichen Inhalt in einem benutzerdefinierten Block bereitzustellen und ihn im Blocklayout unten auf der Seite zu platzieren. Siehe Kommentar von @Kevin.

7
4k4