У мене є ряд змінних, які я хочу зробити доступними на гілочках для конкретних шаблонів вмісту.
У MYTHEME.theme
мене є:
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();
}
}
Це дозволяє мені використовувати {{ headertext }}
і {{ mycustomblock }}
в шаблонах типу вмісту, як node--contenttype1.html.twig
і node--contenttype2.html.twig
. Але я краще не будувати 'headertext'
і 'mycustomblock'
змінні для кожного типу вузлів, коли мені потрібен лише один для одного типу вмісту. Було б непогано мати комутатор або якщо оператор, який перевіряє, який тип вмісту він є, перш ніж генерувати змінну з блоком.
Чи є спосіб я перевірити тип вмісту вузла?
Я намагався
$type = $variables['node']->type;
Але це не вийшло.