mon type de contenu contient plusieurs champs; body, field_meta_tags, field_image, field_date, etc.
Dans node.html.twig, en utilisant le filtre sans, je peux remplacer le rendu standard de {{ content }}
Par {{ content|without('field_image') }}
et tout le contenu, moins l'image, s'affichera.
Comment puis-je exposer cette variable à une autre région et rendre l'image via un modèle différent, peut-être une région - hero-image.html.twig?
Merci!
La façon la plus simple de le faire est de créer une vue avec un affichage de bloc et de définir l'ID de nœud comme filtre contextuel. La sortie de la vue doit être "Contenu" et un mode d'affichage - ce mode d'affichage peut être défini avec son propre modèle twig dans le thème. Vous pouvez ajouter un mode d'affichage à Admin > Structure > Display Modes > View Modes
, puis accédez au type de contenu dont vous avez besoin et configurez l'affichage. En mode affichage, vous pouvez sélectionner et choisir les champs à afficher et les formats qu'ils utilisent.
Voici un bon article le détaillant , et vidéo YouTube parcourant les modes d'affichage et ce qu'ils sont.
Une fois la vue créée, vous pouvez placer le bloc dans l'administrateur du bloc et définir ses paramètres de visibilité pour qu'il ne s'affiche que sur le ou les types de contenu que vous avez configurés.
J'ai trouvé du code ici: Quelle est la meilleure pratique pour afficher les champs d'un nœud dans différentes régions? Placé ceci dans mon [theme_name].theme
fichier:
function THEME_preprocess_region(&$variables) {
//TODO: change for you region name
if ($variables['region'] == 'sidebar_right') {
if ($node = \Drupal::routeMatch()->getParameter('node')) {
//TODO: change for you node type
if ($node->getType() == 'article') {
//If you need a flag for this type
$variables['is_article'] = TRUE;
//Here is your field
$variables['node_field'] = $node->get('field_descricao')->view();
}
}
}
}
Avec
{% if node_field %}
{{ node_field }}
{% endif %}
Placé dans region--footer.html.twig
(ou l'équivalent pour la région que vous avez déclarée ci-dessus). Évidemment, field_descricao
est le champ que vous rendez et node_field
est ce que vous souhaitez que votre nouvelle variable soit.
Cela renvoie un lien vers mon contenu (qui n'est plus une image mais une référence de nœud). Je cherche toujours un moyen de rendre le contenu complet, mais c'est plus proche que moi.
Toute information supplémentaire grandement appréciée!
Consultez le module expérimental "Blocs d'outils de chaos", qui fait partie de Drupal 8.3+. Il n'y a aucune documentation pour le moment, mais c'est assez facile.