如果当前页面上没有内容,我想显示固定页面中的内容。
示例:在主页面上(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
}
}
}
}
答案 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
}
}
}
您还可以创建以下行为:
只需将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
}
}
}