2017-10-20 15 views
1

Je travaille actuellement avec le modèle contao fe_page pour générer des balises META. Maintenant, j'ai besoin d'afficher une balise META basée sur une condition. C'estVérification des conditions dans le modèle fe_page pour Contao

if (condition a){ 
     meta tag =a 
} 
else { 
     meta tag = b 
} 

La condition est "si le module de nouvelles est utilisé dans cette page ou non". Comment puis-je vérifier la condition dat dans le modèle fe_page? Existe-t-il une solution à ça?

+0

Quel type de balise META voulez-vous insérer sous quelle condition exactement? Peut-être que vous devriez le faire dans l'autre sens: ajouter une balise meta dans un crochet 'parseArticles' ou un modèle de nouvelles via' $ GLOBAL ['TL_HEAD'] [] = ... '. – fritzmg

+0

J'utilise le modèle fe_page dans toutes les pages. Et dans toutes les pages, j'ai besoin d'afficher une balise meta basée sur une condition et c'est: 1) Si le module de nouvelles est utilisé dans cette page et si cela contient une image, alors écrivez la balise meta comme . 2), Si aucune image n'est utilisée, alors écrivez une autre balise META. Pouvons-nous vérifier cette condition dans le modèle fe_page? Si oui, comment est-ce possible? Si non, alors quels sont les autres moyens? – Ques

Répondre

2

Au lieu de vérifier dans votre modèle fe_page, vous pouvez faire ce qui suit dans votre modèle news_full:

<?php 

if ($this->addImage) 
{ 
    $GLOBALS['TL_HEAD'][] = '<meta name="twitter:card" content="summary_large_image">'; 
    $GLOBALS['TL_HEAD'][] = '<meta name="twitter:image" content="' . $this->singleSRC . '">'; 
} 

Comme vous pouvez le voir cela ajoute aussi un attribut twitter:image méta avec l'image teaser de l'article de nouvelles. Au lieu de le faire dans un modèle news_full, vous pouvez également le faire avec un crochet parseArticle, ce qui vous donne un peu plus de contrôle, au cas où vous en auriez besoin.

+0

Merci pour votre réponse. J'essaye avec le crochet de parseArticle. – Ques

+0

public function parseArticles ($ objTemplate, $ arrRow, $ module) { if (! Vide ($ arrRow ['singleSRC'])) { $ GLOBALS ['TL_HEAD'] [] = ' '; } else { $ GLOBALS ['TL_HEAD'] [] = ''; }} .... Est-ce la méthode? Si ma page ne contient pas de module de nouvelles, je dois afficher . Cela ne peut pas être réalisé avec cette méthode. Comment cette condition peut-elle être rendue possible? – Ques

+0

Si vous utilisez le hook 'parseArticle', vous devez également vérifier le type de module. par exemple. 'if ($ module-> type == 'newsreader')'. Quelque chose comme la propriété 'semble inutile. – fritzmg