Comment obtenir le nom du type de contenu lisible par l'homme dans un modèle de nœud

14

J'ai créé un modèle de nœud pour mon nœud et son bon fonctionnement.

J'ai besoin d'imprimer le nom du type de contenu, qui est comme "Whitepaper" et a le nom de la machine "w1" dans mon modèle de nœud. Si j'utilise une variable {{ node.bundle }}, son impression du nom de la machine. Mais j'ai besoin du nom lisible par l'homme .

J'ai essayé de nombreux éléments de variables de nœud, de contenu et de page, mais je ne suis pas en mesure d'imprimer le nom du type de contenu lisible par l'homme.

Quelqu'un peut-il aider?

Dev
la source

Réponses:

22

Vous devriez pouvoir obtenir le nom lisible par l'homme du type de contenu (ou l '"étiquette") en utilisant l'extrait de code suivant dans votre modèle Twig de nœud.

{{ node.type.entity.label }} 
edwardchiapet
la source
2
oui, c'est la solution la plus simple, je n'ai pas
pensé
2
J'ai essayé, {{node.label}} qui renvoyait le nom de la machine à la place, {{node.type.entity.label}} a rempli mon objectif, merci :)
Dev
4

Vous pouvez ajouter le nom lisible par l'homme du type de contenu dans un hook de prétraitement:

mytheme.theme

/**
 * Implements hook_preprocess_node().
 */
function mytheme_preprocess_node(array &$variables) {
  $node = $variables['node'];
  $variables['content_type'] = node_type_load($node->bundle())->label();
}

et utilisez-le dans le modèle de nœud:

{{ content_type }}
4k4
la source
1
Juste pour que l'enregistrement node_type_load soit obsolète, vous devez utiliser NodeType :: load () à la place.
Insasse