特定のコンテンツテンプレートのtwigテンプレートで利用できるようにする一連の変数があります。
で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
。ただし、1つのコンテンツタイプに1つだけ必要な場合は、すべてのノードタイプの'headertext'
と'mycustomblock'
変数を作成するのではなく、ブロックで変数を生成する前に、どのコンテンツタイプかをチェックするスイッチまたはifステートメントがあると便利です。
ノードのコンテンツタイプを確認する方法はありますか?
私はもう試した
$type = $variables['node']->type;
しかし、それはうまくいきませんでした。