Typo3 如果tt_新闻中的帖子属于某个类别,则为有条件的

Typo3 如果tt_新闻中的帖子属于某个类别,则为有条件的,typo3,typoscript,Typo3,Typoscript,我为tt_news制作了一个自定义标记,它显示媒体字段中的第一个图像,或者第三个图像,如果它属于某个类别(比如ID=2的类别)。我不知道如何使之有条件。这就是我到目前为止所做的: 10 = IMAGE 10.file{ width = 550 height = 350 import = uploads/pics/ import{ field = image listNu

我为tt_news制作了一个自定义标记,它显示媒体字段中的第一个图像,或者第三个图像,如果它属于某个类别(比如ID=2的类别)。我不知道如何使之有条件。这就是我到目前为止所做的:

    10 = IMAGE
    10.file{
        width = 550
        height = 350
        import = uploads/pics/
        import{
            field = image
            listNum = 0

            #If also belongs to the category "Startseite", the listNum should be 2
            listNum.stdWrap.override = TEXT
            listNum.stdWrap.override{
                value = 0
                if{
                    #??????
                }
            }
        }
    }

您需要编写自定义条件,如
userFunc
部分(底部)中的文档所述

新闻和类别是通过MM关系连接的,所以您只需检查MM表是否包含这一对

typo3conf/localconf.php

function user_newsInCategory($catUid) {
    $ttNewsGet = (t3lib_div::_GP('tx_ttnews'));
    $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
        'uid_foreign',
        'tt_news_cat_mm',
        'uid_foreign = ' . $catUid . ' AND uid_local=' . intval($ttNewsGet['tt_news'])
    );
    return ($GLOBALS['TYPO3_DB']->sql_num_rows($res) > 0) ? true : false;
} 
因此,在TS中,在
10=IMAGE{…}
块之后:

[userFunc = user_newsInCategory(2)]
    10.file.import.listNum = 2
[end]
编辑:

正如您在示例中看到的,它仅在显示新闻时有效(即,如果URL中存在param&tx_ttnews[tt_news])


要检查每个列表项的相似性检查,您需要使用extraItemMarkerProcessor通过钩子(如上所述)使用自定义标记-然后您可以使用每个$row的相似条件来显示不同的图像。

类别和新闻记录与mm相关,因此可能无法用纯打字脚本解决此问题。但是在
userFunc
的帮助下,这应该是相当容易的。有趣。它适用于单个视图,但不适用于列表视图。为什么?让我们