TYPO3 / TypoScript:如何进行后备?

时间:2011-05-24 10:26:59

标签: typo3 fallback typoscript fallbackvalue

我想通过使用两个回退来将字符串输出到呈现的HTML。

我的typoscript是在顶级页面(我的网站的根页面)定义的,并传递给较低级别​​的所有页面。

结构:

  • 主页
    • 第1级页面
      • 第2级页面

文件的常规输出:

该字符串来自TemplaVoila字段(Page / Edit / Extended / MyField): field_copyright_name

要将其输出到HTML输出中的所需位置,将存在templaVoila映射(类型:Typoscript对象路径),名为: lib.copyright_name

以下的错别字来完成这项工作:

lib.hint_copyright_name = COA
lib.hint_copyright_name.10 = TEXT
lib.hint_copyright_name.10 {
    setCurrent.dataWrap = {field:field_copyright_name}
    current = 1
}

这适用于字段(页面属性)不为空的所有级别的所有页面。

第一个后备:

如果该字段为空(在该页面的属性中,例如在第2级),则typoscript应该从上面的页面获取值(在第1级,如果它也是空的,它应该从主页获取)。不知道怎么做。你能帮忙吗?

第二个回退

如果第一个回退仍然返回一个空字符串(因为该字段在所有级别都为空),它应该回退到默认值“版权所有”。

要在没有“首次回退”的情况下启用此回退很容易:

switchdefault_copyright_name = TEXT
switchdefault_copyright_name {
    setCurrent.dataWrap = {field:field_copyright_name}
    current = 1
    override = "Copyright by me"
    override.if.isFalse.field = field_copyright_name
}


lib.hint_copyright_name = COA
lib.hint_copyright_name.10 < switchdefault_copyright_name

但如何整合“第一个后备”?

编辑:

我试过了:

setCurrent.data = {levelfield:-1, field_copyright_name, slide}

setCurrent.data = levelfield:-1, field_copyright_name, slide

setCurrent.dataWrap = {levelfield:-1, field_copyright_name, slide}

setCurrent.dataWrap = levelfield:-1, field_copyright_name, slide

但没有成功 - 没有输出。

1 个答案:

答案 0 :(得分:2)

刚刚发现:http://lists.typo3.org/pipermail/typo3-english/2006-October/032764.html

它应该让你的幻灯片工作。 只需设置:安装&gt;所有配置&gt; addRootLineFields

没试过,但似乎是解决方案