TYPO3:如果当前页面上没有内容,则显示固定页面中的内容

时间:2014-02-12 09:29:32

标签: typo3 fallback

如果当前页面上没有内容,我想显示固定页面中的内容。

示例:在主页面上(pid = 58)在右侧col(colPos = 31)中,我有一个包含最新项目的新闻插件。在子页面上,可以在右侧col中插入内容(colPos = 31)。它可能是图像,文本等。但是,如果右侧col是空的,我想从主页显示新闻插件作为后备选项。

这是我的TypoScript,但它不起作用。如果当前页面没有内容,则不显示主页的默认内容。

lib.rightCol-1 = COA
lib.rightCol-1 {
    10 = COA
    10 {
        ## Get content from current page. 
        10 = COA
        10 < styles.content.get 
        ## Get content from colPos 31
        10.select.where = colPos=31 
        if.isTrue.current = 1 

        20 = CONTENT
        20 {
            ## IF no content on current page show content from mainpage
            stdWrap.if.isTrue.current = 1
            stdWrap.if.negate = 1
            table = tt_content
            select {
                ## Get content from mainpage
                pidInList = 58
                where = colPos=31
                orderBy = sorting
                languageField = sys_language_uid
            }
        }
    }
}

2 个答案:

答案 0 :(得分:1)

可以使用stdWrap.override完成此操作。如果stdWrap.override返回非空的内容,则此值将替换stdWrap返回的正常值。在您的情况下,这可能是这样的:

# Fetch the default content from the mainpage with id 58
lib.rightCol-1 = CONTENT
lib.rightCol-1 {
    table = tt_content
    select {
        pidInList = 58
        where = colPos=31
        orderBy = sorting
        languageField = sys_language_uid
    }

    # override the content from page 58 with content from the current page,
    # but only if there is content on this page
    stdWrap.override.cObject = CONTENT
    stdWrap.override.cObject {
        table = tt_content
        select {
            pidInList = this
            where = colPos=31
            orderBy = sorting
            languageField = sys_language_uid
        }
    }
}

您还可以创建以下行为:

  1. 如果当前页面上有内容,请显示。
  2. 否则,沿着根线走,并从第一页中包含内容的内容中获取内容。
  3. 如果没有此类页面,请从“主页”中获取内容。
  4. 只需将slide = -1设置为第二个CONTENT-Object即可完成。

答案 1 :(得分:0)

感谢您的回答,但我无法让它发挥作用。相反,这有效:

lib.rightCol-1 = CONTENT
lib.rightCol-1 < styles.content.get
lib.rightCol-1.select.where = colPos=31
lib.rightCol-1 {
    stdWrap.ifEmpty.cObject = CONTENT
    stdWrap.ifEmpty.cObject {
    table = tt_content
    select {
        pidInList = 58
        orderBy = sorting
        where = colPos = 31
        languageField = sys_language_uid
        }
    }
}