我有一个简单的后端模块,您可以在其中切换或创建新的"主题" 。为简单起见,我们假设该模型仅包含徽标和颜色代码。在我的typoscript设置中,我使用以下代码从DB中获取项目:
temp.theme= CONTENT
temp.theme{
select{
...
}
renderObj = COA
renderObj {
#theme color
10 = TEXT
10.field = color
...
#theme logo
40 = FILES
40{
references {
...
}
renderObj = IMAGE
renderObj {
wrap = <div class="logo">|</div>
file.import.data = file:current:originalUid
}
}
}
}
如何将此对象拆分为变量? 这不会奏效,但我想这是我想要实现的目标的一个很好的代表:
lib.logo = COA
lib.logo < temp.theme.renderObj.40
另外,我想将颜色设置如下(显然这也不会起作用):
page.cssInline.1010 < temp.theme.renderObj.10
有没有更好的方法来实现我想要做的事情?到目前为止我的工作是复制这个对象,然后取消设置我不使用的内容:
temp.logo = COA
temp.logo{
10 < temp.theme
10.renderObj.10 >
...
#10.renderObj.40 >
...
}
我确信有一种更简单的方法,但我无法找到它。
答案 0 :(得分:1)
您必须阅读有关Typocript的运算符和cObject的更多信息。
lib.logo = COA
lib.logo < temp.theme.renderObj.40
这使lib.logo成为COA cObject,然后只复制其中的temp.theme的renderObj。但是如果没有它所属的CONTENT对象,renderObj就没用了。所以把它改成
lib.logo < temp.theme
它将整个对象复制到它。您之前不必将其声明为COA。也许你甚至不需要温度。 object - 你可以使整个lib.logo成为CONTENT对象。
同样适用于page.cssInline.1010 - 您不仅可以复制renderObj。将整个对象复制到它或使其直接成为CONTENT对象:
page.cssInline.1010 = CONTENT
page.cssInline.1010 {
select{
...
}
renderObj = TEXT
renderObj {
field = color
}
}
存储renderObj的一些临时结果的唯一方法是使用 LOAD_REGISTER对象: https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/LoadRegister/Index.html?highlight=load_register
所有cObjects文档:https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Index.html 运营商: