Saya perlu merender blok views di halaman saya.html.twig template Di D7 saya akan melakukan ini:
<?php
$block = module_invoke('module_name', 'block_view', 'block_delta');
print render($block['content']);
?>
Dalam Drupal 8 module_invoke sudah usang dan disarankan untuk menggunakan ini: (Saya telah menambahkan nama blok sebagai parameter kedua)
Drupal::moduleHandler()->invoke($block, 'views_block__blog_block_1', $args = array());
Saya mencoba beberapa hal. Pertama mencoba melakukannya dalam ranting template tetapi saya tidak tahu bagaimana memanggil fungsi-fungsi php dalam ranting template, sehingga tidak berjalan dengan baik.
Kemudian saya memanggil fungsi dalam fungsi preprocess_page () dalam file tema. Tetapi sebelum saya bisa membuatnya berfungsi, saya mencoba sesuatu yang lebih sederhana hanya untuk mencoba membuat variabel bekerja di dalam ranting templat yang tidak berfungsi dengan baik, misalnya:
Dalam fungsi template_preprocess_page (& $ vars) dalam file .theme:
$test = 'Hello World';
$vars['$my_var'] = $test;
Saya mencoba memanggil my_var di dalam template ranting tetapi tidak berhasil dan saya mendapat pesan kesalahan yang mengatakan "Situs ini memiliki kesalahan, silakan hubungi administrator"
Jadi, untuk meringkas, inilah pertanyaan saya:
- Bagaimana cara membuat variabel tersedia di dalam templat ranting?
- Bagaimana cara saya memanggil fungsi di dalam ranting template?
- Apakah saya membuat blok di dalam file tema. Atau template ranting?