Muszę wyrenderować blok wyświetleń w szablonie page.html.twig. W D7 zrobiłbym to:
<?php
$block = module_invoke('module_name', 'block_view', 'block_delta');
print render($block['content']);
?>
W Drupal 8 module_invoke jest przestarzałe i zalecane jest użycie tego: (Dodałem nazwę bloku jako drugi parametr)
Drupal::moduleHandler()->invoke($block, 'views_block__blog_block_1', $args = array());
Próbowałem kilku rzeczy. Najpierw próbowałem to zrobić w szablonie gałązki, ale nie wiem, jak wywoływać funkcje php w szablonie gałązki, więc nie wyszło to zbyt dobrze.
Następnie wywołałem funkcję w funkcji preprocess_page () w pliku .theme, ale zanim udało mi się ją uruchomić, próbowałem czegoś prostszego, po prostu próbując sprawić, by zmienna działała w szablonie gałązki, która też nie działała, na przykład:
W funkcji template_preprocess_page (& $ vars) w pliku .theme:
$test = 'Hello World';
$vars['$my_var'] = $test;
Próbowałem zadzwonić do my_var w szablonie gałązki, ale to nie zadziałało i otrzymałem komunikat o błędzie „Witryna ma błąd, skontaktuj się z administratorem”
Podsumowując, oto moje pytania:
- Jak udostępnić zmienne w szablonach gałązek?
- Jak wywoływać funkcje w szablonach gałązek?
- Czy renderuję bloki w pliku .theme lub szablonie gałązki?