我想通过使用两个备选方案将字符串输出到渲染的HTML中。
我的typoscript在顶级页面(我的网站的根页面)中定义,并传递给所有较低级别的页面。
结构:
主页 - 1级页面 -- 2级页面
文件的常规输出:
该字符串来自TemplaVoila字段(页面/编辑/扩展/MyField):field_copyright_name 为了将其输出到HTML输出中的所需位置,存在一个TemplaVoila映射(类型:Typoscript对象路径),名为:lib.copyright_name 以下typoscript可以完成此工作:
但是如何集成“第一回退”呢?
或者
或者
或者
我的typoscript在顶级页面(我的网站的根页面)中定义,并传递给所有较低级别的页面。
结构:
主页 - 1级页面 -- 2级页面
文件的常规输出:
该字符串来自TemplaVoila字段(页面/编辑/扩展/MyField):field_copyright_name 为了将其输出到HTML输出中的所需位置,存在一个TemplaVoila映射(类型:Typoscript对象路径),名为:lib.copyright_name 以下typoscript可以完成此工作:
lib.hint_copyright_name = COA
lib.hint_copyright_name.10 = TEXT
lib.hint_copyright_name.10 {
setCurrent.dataWrap = {field:field_copyright_name}
current = 1
}
这个功能适用于所有页面和层级,只要该字段(在页面属性中)不为空。
第一个备选方案:
如果该字段为空(例如在第二层级),则typoscript应该从上面的页面获取值(在第一层级),如果那里也是空的,则应该从主页获取。不知道怎么做。你能帮忙吗?
第二个备选方案:
如果第一个备选方案仍然返回空字符串(因为该字段在所有层级都为空),则应该退回到默认值“版权所有”。
要启用此备选方案而不使用“第一个备选方案”很容易:
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
但是没有成功 - 没有输出。