0

我正在尝试使用以下打字稿代码添加对 tt_news 条目的引用:

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 WHERE tx_referenzen.pid IN (8) AND tx_referenzen.uid = AND tx_referenzen.deleted=0 AND tx_referenzen.hidden=0

因此,查询中缺少相应的参考 uid,该参考 uid 随andWhere打字稿代码一起提供。我想知道,为什么查询中缺少它,尽管在页面上显示了正确的参考标题。

当我只是重新加载(strg+r)页面时,错误消息消失了,但是当我按 strg+shift+r 时,它又回来了。排版有什么问题?有任何想法吗?

更新:

我将选择语句更改为:

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

现在它似乎首先起作用了。错误消息消失了,它显示了新闻条目的相应参考。但是:现在如果没有引用添加到新闻条目,则所有引用都列在新闻条目旁边,而不是none。因此,我必须将问题更改为:如何更改打字稿,以便仅在新闻条目中添加任何参考文献时才列出参考文献?

4

1 回答 1

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,如果您的字段不为空,则此默认值将被字段值覆盖。

于 2014-02-13T14:19:22.870 回答