2

メディアフィールドの最初の画像、または特定のカテゴリ(ID = 2のカテゴリなど)に属する場合は3番目の画像を表示するtt_newsのカスタムマーカーを作成しました。それを条件付きにする方法がわかりません。これは私がこれまでに持っているものです:

    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]

編集:

サンプルでわかるように、ニュースが表示されている場合にのみ機能します(つまり、param&tx_ttnews [tt_news]がURLに存在する場合)

各リストアイテムごとに同様のチェックをチェックするには、extraItemMarkerProcessorを使用してフック経由でカスタムマーカーを使用する必要があります(tt_newsマニュアルで説明さています)。次に、各$行ごとに同様の条件を使用して、異なる画像を表示できます。

于 2012-04-17T14:45:45.233 に答える