Page.html.twig şablonumda bir görünüm bloğu oluşturmam gerekiyor. D7'de bunu yapardım:
<?php
$block = module_invoke('module_name', 'block_view', 'block_delta');
print render($block['content']);
?>
Drupal 8'de module_invoke kullanımdan kaldırıldı ve bunu kullanması önerilir: (bloğun adını ikinci parametre olarak ekledim)
Drupal::moduleHandler()->invoke($block, 'views_block__blog_block_1', $args = array());
Birkaç şey denedim. İlk önce bir dal şablonunda yapmaya çalıştım, ancak bir dal şablonunda php işlevlerini nasıl çağıracağımı bilmiyorum, bu yüzden çok iyi sonuçlanmadı.
Daha sonra, .theme dosyasındaki preprocess_page () işlevindeki işlevi çağırdım, ancak işe yaramadan önce, işe yaramayan dal şablonunun içinde değişken bir iş yapmayı denemek için daha basit bir şey denedim, örneğin:
.Theme dosyasındaki template_preprocess_page (& $ vars) işlevinde:
$test = 'Hello World';
$vars['$my_var'] = $test;
Twig şablonunun içinde my_var'ı aramaya çalıştım ancak çalışmadı ve "Site bir hatadır, lütfen yöneticiye başvurun" diyen bir hata mesajı aldım.
Yani, özetlemek gerekirse, benim sorum şu:
- Değişkenleri dal şablonlarında nasıl kullanılabilir hale getiririm?
- Dal şablonlarının içindeki fonksiyonları nasıl çağırırım?
- .Theme dosyasında veya dal şablonunda bloklar oluşturabilir miyim?