【问题标题】:TYPO3 change meta value in specified tt_news categoryTYPO3 更改指定 tt_news 类别中的元值
【发布时间】:2015-10-08 07:58:17
【问题描述】:

我有一个关于 tt_news 和 SEO 的问题。我想更改指定类别的新闻中的一些元值。我尝试使用此代码,但没有成功:

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

有什么建议吗?

【问题讨论】:

  • 为什么又是page=PAGE?如果您的 URL 看起来像 &tx_ttnews[tt_news]=123&tx_ttnews[cat]=13 并且您删除了整个 FE 缓存,它应该可以工作。
  • 我认为为了改变meta标签我需要使用page = PAGE
  • 我假设您在添加此条件之前已经声明了page
  • 是的,在另一个 TS 文件中(包含整个 PAGE 文件)。现在我明白你的意思了。我还有一个问题 - 我应该在globalVar 语句中插入&tx_ttnews[tt_news]=123&tx_ttnews[cat]=13 的片段?

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


【解决方案1】:

条件[globalVar = GP:param = foo] 检查$_GET$_POST 数组(按此顺序)是否包含paramfoo,但它不检查已使用类别的记录,因此您需要将自定义条件(reference)写入typo3conf/AdditionalConfiguration.php(TYPO3 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;
}

它在打字稿中的用法是:

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

【讨论】:

  • 像魅力一样工作 :) 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-29
  • 1970-01-01
  • 2015-04-24
  • 1970-01-01
相关资源
最近更新 更多