Tôi có một loạt các biến tôi muốn cung cấp trên các mẫu twig cho các mẫu nội dung cụ thể.
Trong MYTHEME.theme
tôi có:
function MYTHEME_preprocess_node(&$variables) {
if (isset($variables['node'])) {
$mycustomblock = \Drupal::service('plugin.manager.block')
->createInstance('myblock', []);
$variables['mycustomblock'] = $mycustomblock->build();
$headertext = \Drupal::service('plugin.manager.block')
->createInstance('headertext',
[
'text-align-submit' => 'right',
'uppercase-submit' => TRUE,
'header_size' => 'h4',
'header-size-submit' => 'h4',
'grid-size-submit' => 6,
'header-title' => 'This is a test',
]
);
$variables['headertext'] = $headertext->build();
}
}
Điều này cho phép tôi sử dụng {{ headertext }}
và {{ mycustomblock }}
trong các mẫu nội dung như node--contenttype1.html.twig
và node--contenttype2.html.twig
. Nhưng tôi không muốn xây dựng các biến 'headertext'
và 'mycustomblock'
biến cho mỗi loại nút đơn khi tôi chỉ cần mỗi loại cho một loại nội dung. Sẽ tốt hơn nếu có một công tắc hoặc nếu câu lệnh kiểm tra loại nội dung đó trước khi tạo một biến có một khối.
Có cách nào để tôi có thể kiểm tra loại nội dung của nút không?
Tôi đã thử
$type = $variables['node']->type;
Nhưng điều đó đã không làm việc.