Ich muss einen Ansichtenblock in meiner page.html.twig-Vorlage rendern. In D7 würde ich das machen:
<?php
$block = module_invoke('module_name', 'block_view', 'block_delta');
print render($block['content']);
?>
In Drupal 8 ist module_invoke veraltet und es wird empfohlen, dies zu verwenden: (Ich habe den Namen des Blocks als zweiten Parameter hinzugefügt.)
Drupal::moduleHandler()->invoke($block, 'views_block__blog_block_1', $args = array());
Ich habe ein paar Dinge ausprobiert. Zuerst habe ich versucht, es in einem Zweig-Template zu tun, aber ich weiß nicht, wie man PHP-Funktionen in einem Zweig-Template aufruft, so dass es nicht allzu gut geworden ist.
Dann habe ich die Funktion in der preprocess_page () - Funktion in der .theme-Datei aufgerufen, aber bevor ich sie zum Laufen bringen konnte, habe ich etwas Einfacheres versucht, nur um zu versuchen, eine Variable innerhalb der Zweigvorlage arbeiten zu lassen, die auch nicht funktionierte, zum Beispiel:
In der Funktion template_preprocess_page (& $ vars) in der Datei .theme:
$test = 'Hello World';
$vars['$my_var'] = $test;
Ich habe versucht, my_var in der Zweigvorlage aufzurufen, aber es hat nicht funktioniert, und es wurde die Fehlermeldung "Die Website weist einen Fehler auf. Wenden Sie sich an den Administrator."
Zusammenfassend sind hier meine Fragen:
- Wie stelle ich Variablen in Zweigvorlagen zur Verfügung?
- Wie rufe ich Funktionen in Zweigvorlagen auf?
- Rendere ich Blöcke in der .theme-Datei oder in der Zweigvorlage?