Tôi cần kết xuất khối lượt xem trong mẫu page.html.twig của mình. Trong D7 tôi sẽ làm điều này:
<?php
$block = module_invoke('module_name', 'block_view', 'block_delta');
print render($block['content']);
?>
Trong Drupal 8 module_invoke không được dùng nữa và nên sử dụng cái này: (Tôi đã thêm tên của khối làm tham số thứ hai)
Drupal::moduleHandler()->invoke($block, 'views_block__blog_block_1', $args = array());
Tôi đã thử một vài điều. Đầu tiên đã thử làm điều đó trong một mẫu twig nhưng tôi không biết cách gọi các hàm php trong một mẫu twig, vì vậy điều đó không thành công lắm.
Sau đó, tôi đã gọi hàm trong hàm pre process_page () trong tệp .theme nhưng trước khi tôi có thể làm cho nó hoạt động, tôi đã thử một cái gì đó đơn giản hơn chỉ để thử làm một biến hoạt động trong khuôn mẫu twig không hoạt động, ví dụ:
Trong hàm template_pre process_page (& $ vars) trong tệp .theme:
$test = 'Hello World';
$vars['$my_var'] = $test;
Tôi đã cố gắng gọi my_var bên trong mẫu twig nhưng nó không hoạt động và tôi nhận được thông báo lỗi "Trang web có lỗi, vui lòng liên hệ với quản trị viên"
Vì vậy, để tóm tắt, đây là câu hỏi của tôi:
- Làm cách nào để tạo các biến có sẵn trong các mẫu twig?
- Làm cách nào để gọi các hàm bên trong các mẫu twig?
- Tôi có kết xuất các khối bên trong tệp .theme hoặc mẫu twig không?