2012-04-13 4 views
2

Я сделал пользовательский маркер для tt_news, который показывает первое изображение из медиа-поля, или третье, если оно принадлежит определенной категории (скажем, категория с ID = 2). Я не знаю, как сделать это условным. Это то, что я до сих пор:Условный, если сообщение в 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{ 
        #?????? 
       } 
      } 
     } 
    } 
+0

Категории и записи новостей связаны с миллиметрами, поэтому, возможно, вы не можете решить это с помощью чистого typoscript. Но с помощью 'userFunc' это должно быть довольно легко. – Mateng

ответ

1

Вам нужно написать пользовательское состояние, как описано в доке в userFunc секции (нижняя)

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

Новости и категории связаны с ММ отношения, чтобы вы просто проверить, если ММ таблица содержит эту пару ...

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 в TS после вашего 10 = IMAGE { ... } блока:

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

редактировать:

Как вы можете видеть в образце он работает только тогда, когда отображается новостей (то есть. если параметр & tx_ttnews [tt_news] существует в URL)

Чтобы проверить подобную проверку на каждый элемент списка, необходимо использовать пользовательский маркер с помощью крючка (как описано in tt_news manual) с помощью extraItemMarkerProcessor - то вы можете использовать аналогичные условия за каждый $ row для отображения различных изображений.

+0

Смешные. Он работает в режиме SINGLE, но не в представлении LIST. Зачем? –

+0

давайте [продолжить обсуждение в чате] (http://chat.stackoverflow.com/rooms/10214/discussion-between-biesior-and-dbugger) – biesior

Смежные вопросы