2014-02-11 3 views
0

Я пытаюсь добавить ссылку на запись tt_news, используя следующий TypoScript код:как добавить данные из таблицы расширения для tt_news шаблона с помощью genericmarkers

plugin.tt_news.genericmarkers { 
    data = tx_extendednews_referenz 

    REFERENZ = CONTENT 
    REFERENZ { 

     table = tx_referenzen 
     select { 
      pidInList = 8 
      selectFields = tx_referenzen.title 
      andWhere.dataWrap = tx_referenzen.uid = {field:generic_tx_extendednews_referenz} 
     } 
     renderObj = COA 
     renderObj { 
      10 = TEXT 
      10.field = title 
     } 
    } 
} 

###GENERIC_REFERENZ### маркер показывает название соответствующего ссылка, поэтому кажется, что она работает. но есть это сообщение о ошибке typo3 в заголовке страницы, в котором говорится, что у меня ошибка в синтаксисе SQL. LastBuiltQuery выглядит следующим образом:

ВЫБОР tx_referenzen.title, tx_referenzen.uid, как UID, tx_referenzen.pid, как PID ОТ tx_referenzen ГДЕ tx_referenzen.pid в (8) И tx_referenzen.uid = И tx_referenzen.deleted = 0 И tx_referenzen.hidden = 0

Таким образом, есть соответствующая ссылка UID отсутствует в запросе, который пришел с andWhere в коде TypoScript. Мне интересно, почему этого не хватает в запросе, хотя на странице появляется правильное название ссылки.

Когда я просто перезагружаю (strg + r) страницу, сообщение об ошибке исчезает, но когда я нажимаю strg + shift + r, он возвращается. Что не так с typoscript? Есть идеи?

обновление:

Я изменил выбора-заявление:

select { 
     pidInList = 8 
     selectFields = tx_referenzen.title, tx_referenzen.uid 
     andWhere { 
      dataWrap = tx_referenzen.uid = {field:generic_tx_extendednews_referenz} 
      if.isTrue.data = field:generic_tx_extendednews_referenz 
      if.isTrue.data.ifEmpty = 1 
     } 
    } 

Теперь, кажется, работает в первую очередь. Сообщение об ошибке исчезло, и оно отображает соответствующую ссылку в новостной записи. но: Теперь, если есть нет ссылка добавляется в пресс-записи, все ссылок перечислены рядом с записью новостей, а не ни. Поэтому я должен изменить свой вопрос на: как изменить типограф, чтобы он отображал только ссылки, если они добавлены в запись новостей?

+0

Вы пробовали andWhere = ..., andWhere.insertData = 1? – Urs

+0

есть, но нет разница. см. мое обновленное сообщение о том, как я его изменил – mcnesium

ответ

0

Это было бы мое решение:

data = tx_extendednews_referenz 

1 = LOAD_REGISTER 
1.param.cObject = TEXT 
1.param.cObject.value = 0 
1.param.cObject.override.data = field:generic_tx_extendednews_referenz 

REFERENZ = CONTENT 
REFERENZ { 

    table = tx_referenzen 
    select { 
     pidInList = 8 
     selectFields = tx_referenzen.title, tx_referenzen.images, tx_referenzen.uid 
     andWhere = tx_referenzen.uid = {REGISTER:param} 
     andWhere.insertData = 1 
    } 

определяет значение по умолчанию, равное 0 в регистре, и если ваше поле не пустое это значение по умолчанию заменяется полем стоимости.