У меня есть ряд переменных, которые я хочу сделать доступными в шаблонах веток для определенных шаблонов контента.
У 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'
переменные для каждого типа узла , когда мне нужно только каждый из них по одному типу содержимого. Было бы неплохо иметь параметр switch или if, который проверяет, к какому типу контента это относится, прежде чем генерировать переменную с блоком.
Есть ли способ, которым я могу проверить тип содержимого узла?
я пытался
$type = $variables['node']->type;
Но это не сработало.