我正在Frontend-Layout
- 后端使用字段TYPO3 7.6
。因为我的网站将在前端有四个不同颜色的不同部门。
所以我正在使用:
TCEFORM {
pages {
layout {
altLabels {
0 = [ blue]
1 = [ orange ]
2 = [ green]
3 = [ yellow]
}
}
}
} ### TCEFORM
在我的FLUIDTEMPLATE
我将包装<div>
- 包装器,在我的样式表中全局设置不同的语言。 F.E. div.wrap.blue { background-color:blue;}
<div class="wrap
{f:if(condition:'{data.layout} == 0',then:'blue')}
{f:if(condition:'{data.layout} == 1',then:'orange')}
{f:if(condition:'{data.layout} == 2',then:'green')}
{f:if(condition:'{data.layout} == 3',then:'yellow')}">
...
这对我来说很完美。
但是,如何将父页面中的前端布局信息滑动(或继承)到我的pagetree上的子页面?如果我要在页面树中添加新页面,我不希望每次都在页面属性中选择前端布局。这必须自动运行。这可能吗?使用slide
?
例如
*ROOT
+ parent blue
~~ sub blue 1 /* these pages also have frontend layout 0 */
~~ sub blue 2
+ parent orange
~~ sub orange 1
+ parent green
...
+ parent yellow
...
Thebks的意见或建议......
答案 0 :(得分:1)
我不认为在不操纵数据库的情况下递归设置{data.layout}
布局非常简单。我有三个解决方案&#39;想到解决你的问题:
1)创建四个后端布局,您可以为当前页面和子页面选择。 (基本上冲洗并重复你为第一个后端布局所做的事情)
2)使用你的布局模式你可以尝试使用typoscript设置一个body类(我没有测试过):
page.bodyTag >
page.bodyTagCObject = TEXT
page.bodyTagCObject.field = data.layout
page.bodyTagCObject.wrap = <body class="color-|">
3)使用类似的typoscript但使用诸如[pidInRootline]
page.bodyTag >
page.bodyTagCObject = TEXT
page.bodyTagCObject.wrap = <body class="blue">
[PIDinRootline = 1]
page.bodyTagCObject.wrap = <body class="orange">
[global]
[PIDinRootline = 2]
page.bodyTagCObject.wrap = <body class="green">
[global]
# and so on
答案 1 :(得分:0)
我有同样的问题,这个typoscript对我很好, 结果就是你想要达到的目标。
正如您所见,在页面上设置前端布局时使用 20.10 对象,而在未设置前端布局时使用 20.20 对象并将其接受在幻灯片模式下:
page {
bodyTagCObject >
bodyTagCObject = COA
bodyTagCObject {
stdWrap.noTrimWrap = |<body |>|
20 = COA
20 {
wrap = class="|"
10 = TEXT
10 {
if.isTrue.data = page:layout
data = page:layout
noTrimWrap = |page-layout-| |
}
20 = TEXT
20 {
if.isFalse.data = page:layout
data = levelfield:-2, layout, slide
noTrimWrap = |page-layout-|
}
}
}
}
我希望自己有所帮助。