2

我为 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{
                    #??????
                }
            }
        }
    }
4

1 回答 1

1

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

http://typo3.org/documentation/document-library/core-documentation/doc_core_tsref/4.3.2/view/1/4/

新闻和类别与 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]

编辑:

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

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

于 2012-04-17T14:45:45.233 回答