ฉันต้องการแสดงบล็อกการดูในเทมเพลตของฉัน html.twig ใน D7 ฉันจะทำสิ่งนี้:
<?php
$block = module_invoke('module_name', 'block_view', 'block_delta');
print render($block['content']);
?>
ใน Drupal 8 module_invoke เลิกใช้แล้วและแนะนำให้ใช้สิ่งนี้: (ฉันได้เพิ่มชื่อบล็อกเป็นพารามิเตอร์ตัวที่สอง)
Drupal::moduleHandler()->invoke($block, 'views_block__blog_block_1', $args = array());
ฉันลองบางสิ่ง ก่อนอื่นให้ลองทำในเทมเพลตกิ่งไม้ แต่ฉันไม่รู้วิธีเรียกใช้ฟังก์ชัน php ในเทมเพลตกิ่งไม้ดังนั้นจึงไม่ได้ผลดีเกินไป
จากนั้นฉันเรียกใช้ฟังก์ชันใน preprocess_page () ฟังก์ชั่นในไฟล์. theme แต่ก่อนที่ฉันจะสามารถใช้งานได้ฉันพยายามทำสิ่งที่ง่ายกว่าเพียงแค่พยายามทำให้ตัวแปรทำงานภายในเทมเพลตกิ่งที่ไม่ทำงานเช่น:
ในฟังก์ชัน template_preprocess_page (& $ vars) ในไฟล์. theme:
$test = 'Hello World';
$vars['$my_var'] = $test;
ฉันพยายามโทรหา my_var ในเทมเพลตกิ่งไม้ แต่มันใช้งานไม่ได้และฉันได้รับข้อความแสดงข้อผิดพลาดว่า "เว็บไซต์มีข้อผิดพลาดกรุณาติดต่อผู้ดูแลระบบ"
ดังนั้นเพื่อสรุปนี่คือคำถามของฉัน:
- ฉันจะทำให้ตัวแปรพร้อมใช้งานภายในแม่แบบกิ่งไม้ได้อย่างไร
- ฉันจะเรียกฟังก์ชันภายในแม่แบบกิ่งไม้ได้อย่างไร
- ฉันจะแสดงบล็อกภายในไฟล์. theme หรือแม่แบบกิ่งไม้ได้หรือไม่?