Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 打字3/打字稿:如何进行回退?_Typo3_Fallback_Typoscript_Fallbackvalue - Fatal编程技术网

Typo3 打字3/打字稿:如何进行回退?

Typo3 打字3/打字稿:如何进行回退?,typo3,fallback,typoscript,fallbackvalue,Typo3,Fallback,Typoscript,Fallbackvalue,我想通过使用两个回退将字符串输出到呈现的HTML 我的打字稿是在顶层页面(我网站的根页面)定义的,并传递到所有较低级别的页面 结构: 主页 第1级页面 第二级页面 文件的常规输出: 字符串来自TemplaVoila字段(Page/Edit/Extended/MyField):field\u copyright\u name 要将其输出到HTML输出中的所需点,存在一个templaVoila映射(类型:Typoscript Object Path),名为:lib.copyright\u

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

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

结构:

  • 主页
    • 第1级页面
      • 第二级页面
文件的常规输出: 字符串来自TemplaVoila字段(Page/Edit/Extended/MyField):field\u copyright\u name

要将其输出到HTML输出中的所需点,存在一个templaVoila映射(类型:Typoscript Object Path),名为:lib.copyright\u 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,如果该字段也为空,则应从主页获取)。不知道怎么做。你能帮忙吗

第二个退路 如果第一个回退仍然返回一个空字符串(因为该字段在所有级别都是空的),那么它应该回退到默认值“Copyright by me”

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

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

但是没有成功-没有输出。

刚刚发现:

这是为了让你的工作顺利进行。 只需设置:安装>所有配置>addRootLineFields


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

你能在你的根页面中尝试这样的东西吗:lib.hint\u copyright\u name.10{data={field:field\u copyright\u name}:0/{field:field\u copyright\u name}:1/{field:field\u copyright\u name}:2}或者使用field:lib.hint\u copyright\u name.10{field=field\u copyright\u name:0//field\u copyright\u name:1//field\u copyright\u name:2}我不确定这是否有效。Rito的建议不起作用(因为我不想将级别总数限制为3级)。
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