Ho una serie di variabili che voglio rendere disponibili su modelli di ramoscelli per modelli di contenuto specifici.
In MYTHEME.theme
ho:
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();
}
}
Ciò mi consente di utilizzare {{ headertext }}
e {{ mycustomblock }}
in modelli di tipo di contenuto come node--contenttype1.html.twig
e node--contenttype2.html.twig
. Ma preferirei non creare le variabili 'headertext'
e 'mycustomblock'
per ogni singolo tipo di nodo quando ne ho bisogno solo per un tipo di contenuto. Sarebbe bello avere uno switch o un'istruzione if che controlli il tipo di contenuto prima di generare una variabile con un blocco.
Esiste un modo per verificare il tipo di contenuto del nodo?
ho provato
$type = $variables['node']->type;
Ma quello non ha funzionato.