2017-09-16 5 views
0

Aujourd'hui, j'ai essayé d'ajouter image_field dans le bloc "Page Title".Bloc de titre de page Drupal

Je ne sais pas si c'est possible?

Si ce n'est pas possible, il est possible d'ajouter field_image dans le modèle de brindille?

Tnks.

+0

Tout est possible. Pouvez-vous montrer le code que vous avez essayé? –

+0

Je viens d'essayer d'utiliser twig comme ceci: {{node.field_image.title}} (titre du test), juste dans field - node - title.html.twig. Je ne sais pas si c'est la meilleure façon de faire cela ... Thks pour la réponse rapide;) –

+0

Je viens de réaliser que vous utilisez Drupal. Je ne suis pas familier avec Drupal. Peut-être que quelqu'un d'autre peut suggérer quelque chose? –

Répondre

0

Ce qui suit peut vous aider. Tout d'abord, je suis en train d'ajouter une suggestion de thème pour page_title, afin que je puisse contrôler l'endroit où je dois chevaucher le modèle. J'ajoute node_type - comme suffixe au template.

Puis j'ajoute la fonction de pré-traitement - assurez-vous de remplacer la signature par le type que vous voulez "nouvelles" à la fin devrait être remplacé par votre type de contenu de la première fonction.

Dans la deuxième fonction, j'obtiens un champ appelé sous-titre, et j'ajoute la valeur aux variables afin qu'elles soient disponibles dans le modèle.

function mytheme_theme_suggestions_alter(array &$suggestions, array &$variables, $hook) { 
    if($hook === 'page_title') { 
    if($node = \Drupal::routeMatch()->getParameter('node')){ 
     $node_type = $node->getType(); 
     // suggestion must use _ and __ as per convention. 
     $suggestions[] = 'page_title__'.$node_type; 
    } 
    } 
} 


function mytheme_preprocess_page_title__news(&$variables) { 

    if ($node = \Drupal::routeMatch()->getParameter('node')) { 
    try { 
     if ($node->get('field_subtitle') && !$node->get('field_subtitle')->isEmpty()) { 
     $variables['sub_title'] = 
      $node->get('field_subtitle') 
      ->get(0) 
      ->get('value') 
      ->getValue(); 
     } 
    }catch(Exception $e){ 

     \Drupal::logger('mytheme')->error($e); 
    } 
    } 
} 

maintenant dans le modèle que vous sera sub_title disponible dans le fichier de modèle, dans mon cas, il était en page titre - news.html.twig - copié de la page-title.html.twig et ajouté variable respective.

+0

Pour avoir à ajouter les fonctions ci-dessus devrait être dans votre fichier mytheme.theme – allupaku

+0

Salut, j'ai essayé d'utiliser votre fonction avec quelques modifications pour s'adapter à mon thème. mais quand j'essaie de voir ce que j'ai dans la variable (pour vous 'sub_title') avec kint(), il dit 'NULL' –

+0

Avez-vous essayé de kint dans la fonction elle-même pour les valeurs de variables? Si vous récupérez correctement les valeurs du champ, les valeurs des champs d'image n'ont pas la même structure que le champ de texte. Dans mon cas, je vais chercher le champ de texte. – allupaku