web-dev-qa-db-fra.com

En utilisant Twig comment puis-je obtenir le résumé du champ corporel à utiliser dans un modèle?

J'ai donc une zone de texte avec résumé et je veux afficher le résumé avant le contenu. Donc, si j'utilise simplement {{ content.body }} le texte est affiché sans le résumé.

Comment puis-je obtenir le résumé?

{{ content.body.summary }} ne semble pas faire l'affaire

10
Sorin

Dans votre fichier THEME.theme, vous pouvez simplement le définir également:

function THEME_preprocess_node(&$variables) {
$variables['node_teaser'] = $node_array['body'][0]['summary'];
}

Et puis affichez-le avec:

{{ node_teaser }}
4
Mike Gifford

La seule façon dont j'ai réussi à résoudre ce problème est:

si vous souhaitez uniquement cibler la valeur du résumé, vous pouvez cibler l'entité sur laquelle vous vous trouvez. Si vous êtes sur un nœud, vous pouvez le faire:

node.body.summary

Dans un paragraphe

paragraph.field_body.summary

Vous pouvez également obtenir le résumé du contenu avant comme ceci:

content.body['#object'].body.summary

Pas génial mais fera l'affaire pour l'instant.

18
Sorin

Pour s'appuyer sur ce que 4k4 a écrit (et mis à jour pour 2018):

Vous choisissez d'abord la façon dont vous souhaitez que le champ soit formaté, puis vous l'imprimez.

1) Allez dans Structure> Types de contenu> VOTRE TYPE DE CONTENU> Gérer l'affichage> VOTRE MODE DE VUE.

2) Dans la colonne "Formateur", choisissez "Résumé ou découpé".

3) Enregistrez.

4) Dans votre fichier twig vous devriez pouvoir imprimer simplement {{body}} (c'est ce qui fonctionne pour moi, mais corrigez-moi si je me trompe et je mettrai à jour).

Cela fonctionne pour moi en utilisant le nœud dans un bloc View, et devrait également fonctionner sur le nœud.

1
ojorojo

Je l'ai fait fonctionner simplement en utilisant

{{ content.field_description['#items'][0].summary }}

où mon champ de description est field_description

0
NKP