2012-04-13 12 views
2

Ich habe eine benutzerdefinierte Markierung für tt_news gemacht, die das erste Bild aus dem Medienfeld zeigt, ODER die dritte, wenn es zu einer bestimmten Kategorie gehört (sagen wir Kategorie mit ID = 2). Ich weiß nicht, wie ich das machen soll. Das ist, was ich habe, so weit:Bedingt, wenn ein Beitrag in tt_news zu einer bestimmten Kategorie gehört

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{ 
        #?????? 
       } 
      } 
     } 
    } 
+0

Kategorien und Nachrichtensätze sind mm-bezogen, also können Sie das vielleicht nicht mit reinem TypoScript lösen. Aber mit Hilfe eines 'userFunc' sollte das ziemlich einfach sein. – Mateng

Antwort

1

Sie müssen benutzerdefinierte Bedingung schreiben, wie in doc in userFunc Abschnitt (unten) beschrieben

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

Nachrichten und Kategorien mit MM Beziehung verbunden sind, so dass Sie nur um zu überprüfen, ob MM-Tabelle dieses Paar enthält ...

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; 
} 

somwhere in TS nach Ihre 10 = IMAGE { ... } Block:

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

edit:

Wie Sie es funktioniert in der Probe nur sehen kann, wenn Nachrichten angezeigt wird (dh. wenn param & tx_ttnews [tt_news] in URL existiert)

Um zu überprüfen, ähnliche Prüfung für jeden Listeneintrag müssen Sie benutzerdefinierten Marker über Haken verwenden (wie in tt_news manual beschrieben) unter Verwendung von extraItemMarkerProcessor - dann können Sie ähnliche Bedingung pro jedem Gebrauch $ row, um verschiedene Bilder anzuzeigen.

+0

Lustig. Es funktioniert in der SINGLE-Ansicht, nicht jedoch in der LIST-Ansicht. Warum? –

+0

Lass uns [diese Diskussion im Chat fortsetzen] (http://chat.stackoverflow.com/rooms/10214/discussion-between-biesior-and-dugger) – biesior