繁体   English   中英

TYPO3 / TypoScript:如何进行后备?

[英]TYPO3 / TypoScript: How to make a fallback?

我想通过使用两个后备将 output 一个字符串传递给呈现的 HTML 。

我的打字稿在顶层页面(我网站的根页面)中定义,并传递到较低级别的所有页面。

结构:

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

文件的常规 output:

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

To output it to the desired point in the HTML output a templaVoila mapping exists (Type: Typoscript Object Path), named: 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 级),打字稿应该从上面的页面中获取值(在第 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

但没有成功 - 没有 output。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM