TYPO3在指定的tt_news类别中更改元值

时间:2015-10-08 07:58:17

标签: typo3 typoscript typo3-6.2.x tt-news

我对tt_news和SEO有疑问。我想改变来自指定类别的新闻中的一些元值。我尝试使用此代码,但它不起作用:

[globalVar = GP:tx_ttnews|tt_news > 0] && [globalVar = GP:tx_ttnews|cat = 13]
   page = PAGE
   page.meta.robots = noindex
[global]

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

条件[globalVar = GP:param = foo]会检查$_GET$_POST数组(按此顺序)是否包含值param的{​​{1}},但它是否为foo。检查已使用类别的记录,因此您需要将自定义条件(reference)写入typo3conf/AdditionalConfiguration.php(TYX3 6.x!在4.x中的常用条件typo3conf/localconf_local.php )它将检查是否有单个新闻的参数,然后将检查tt_news_cat_mm表中新闻和类别之间的关系,准备使用的样本是:

/** For ext:tt_news only! (not for ext:news) */
function user_ttNewsInCat($catUid) {
    $newsParams = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('tx_ttnews');

    // If news is in params then check categories, otherwise skip it
    if (!is_null($newsParams) && is_array($newsParams) && intval($newsParams['tt_news']) > 0) {
        $newsUid = intval($newsParams['tt_news']);
        $matchesInMM = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'tt_news_cat_mm', "uid_local={$newsUid} AND uid_foreign={$catUid}");

        if (count($matchesInMM)>0) return TRUE;
    }

    return FALSE;
}

它在typoscript中的用法是:

[userFunc = user_ttNewsInCat(13)]
  page.meta.robots = noindex
[end]