2017-10-20 162 views
1

我现在正在使用contao fe_page模板来生成元标记。现在我需要根据条件显示元标记。那是在fe_page模板中检查Contao的条件

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

条件是“新闻模块是否在该页面中使用”。 如何检查fe_page模板中的dat条件?有没有解决方案?

+0

什么样的元标记你想要在哪种条件下完全插入?也许你应该这样做:通过'$ GLOBAL ['TL_HEAD'] [] = ...''在'parseArticles'钩子或新闻模板中添加元标记。 – fritzmg

+0

我在所有页面中都使用fe_page模板。在所有页面中,我需要显示一个基于条件的元标记,它是:1)如果在该页面中使用了新闻模块,并且它包含图像,则将元标记写为。 2),如果没有使用图像,则编写另一个元标记。我们可以在fe_page模板中检查这种情况吗?如果是,那怎么可能?如果不是,那么其他方法是什么? – Ques

回答

2

在您fe_page模板检查它的代替,你可以做你的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 . '">'; 
} 

正如你所看到的,这也增加了与新闻文章的传情形象twitter:image元属性。

而不是在news_full模板中执行此操作,也可以在parseArticle钩子中执行此操作,以便在需要时为您提供更多控制。

+0

感谢您的回复。我正在尝试与parseArticle挂钩。 – Ques

+0

public function parseArticles($ objTemplate,$ arrRow,$ module)if(!empty($ arrRow ['singleSRC'])){GLOBALS ['TL_HEAD'] [] =''; } else { $ GLOBALS ['TL_HEAD'] [] =''; }} ....这是方法吗?如果我的页面不包含新闻模块,我需要显示。这种方法无法实现。如何使这种情况成为可能? – Ques

+0

如果您使用'parseArticle'钩子,您还需要检查模块类型。例如'if($ module-> type =='newsreader')'。像“”似乎没有必要。 – fritzmg