Je voudrais passer une variable à un modèle Twig Twig $ qui est situé dans mon module personnalisé (pas dans un thème).
Après cette réponse et cette réponse , j'ai écrit ce code dans mymodule.module:
function mymodule_preprocess_page(array &$variables) {
$variables['hello'] = 'world';
}
function mymodule_theme_suggestions_node_add_list(array $variables) {
$suggestions = [];
$suggestions[] = 'node_add_list__' . 'custom';
return $suggestions;
}
function mymodule_theme() {
return [
'node_add_list__custom' => [
'base hook' => 'node_add_list',
],
];
}
Ensuite, j'ai ajouté dans mymodule/templates/node-add-list - custom.html.twig:
myvar: {{ hello }}
Cependant, rien n'apparaît après "myvar:" lorsque je rafraîchis la page. Je mentionne que j'ai vidé le cache .
Y a-t-il quelque chose de spécifique à gérer lorsque nous utilisons hook_preprocess_page()
avec hook_theme_suggestions_HOOK()
/hook_theme()
?
Tu dois function MYMODULE_preprocess_node_add_list
.
function MYMODULE_preprocess_node_add_list(array &$variables) {
$variables['hello'] = 'world';
}
Ce hook de prétraitement est en fait appelé HOOK_preprocess_HOOK
. Voir le dernier HOOK
dans son nom? Vous devez cibler le 'base hook'
lequel est node_add_list
. Prétraitez donc cela au lieu de la page.