J'ai ajouté un modèle de vue views-view-fields--nieuws--page.html.twig
à mon thème.
Le modèle est correct, lorsque je le modifie, je vois les résultats sur mon site Web.
{% for field in fields %}
{{ field.separator }}
{{ field.wrapper_prefix }}
{{ field.label_html }}
{{ field.content }}
{{ field.wrapper_suffix }}
{% endfor %}
Dans page.html.twig
J'imprime la région comme ceci:
{{ page.content }}
Mais ma sortie contient des balises HTML, une idée de comment résoudre ce problème?
EDIT: Il semble que mon HTML soit rendu via Twig
{% set hello = '<strong>Hello</strong>' %}
{{ hello }}
sort le <strong>
tags également.
Il s'agit actuellement d'un bogue connu avec le modèle views-view-fields.html.twig: https://www.drupal.org/node/236342
Vous devez décompresser HTML. Il existe deux méthodes de travail pour y parvenir. D'abord, vous pouvez marquer votre champ comme "brut" et le html s'affichera correctement. {{ your_field | raw }}
devrait être correct.
En deuxième recours, vous pouvez utiliser la fonctionnalité d'évasion automatique de twig:
{% autoescape false %}
{{ your_field }}
{% endautoescape %}
De cette façon, vous dites à twig de ne pas échapper au balisage html.
Aucune des solutions ci-dessus n'a fonctionné dans mon cas. Voici comment je l'ai résolu en codant
function mytheme_preprocess_views_view_field(&$variables) {
if ($variables['view']->id() == 'my_viewname' && $variables['field']->field == 'field_description') {
$output = $variables['field']->getValue($variables['row']);
$variables['output'] = ['#markup'=> $output];
}
}
Dans views-view-fields - my-viewname.html.twig il suffit d'imprimer la valeur. Pas besoin d'autoscaping ou de filer brut
{{ fields.field_description.content }}