3

Frontend-Layout在我的TYPO3 7.6-Backend 使用该字段。因为我的网站将在前端有四个不同颜色的不同部门。

页面前端选择布局

所以我正在使用:

TCEFORM {
    pages {
        layout {
            altLabels {
                0 =  [ blue]
                1 =  [ orange ]
                2 =  [ green]
                3 =  [ yellow]
            }
        }
    }

} ### TCEFORM

在我的FLUIDTEMPLATE我将包装一个<div>-wrapper,以在我的样式表中全局设置我的不同语言。铁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')}">
...

这对我来说很完美。但是如何将前端布局信息从父页面滑动(或继承)到页面树上的子页面?如果我将新页面添加到我的页面树中,我不想每次都在页面属性中选择前端布局。这必须自动工作。这可能吗?与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 为您提供意见或提示..

4

2 回答 2

1

我认为在{data.layout}不操作数据库的情况下递归设置布局并不简单。我想到了三个“解决方案”来解决您的问题:

1) 创建四个后端布局,您可以为当前页面和子页面选择它们。(基本上冲洗并重复您为第一个后端布局所做的事情)

2)使用您的布局模式,您可以尝试使用这样的打字稿设置正文类(我没有对此进行测试):

page.bodyTag >
page.bodyTagCObject = TEXT
page.bodyTagCObject.field = data.layout
page.bodyTagCObject.wrap = <body class="color-|"> 

3)使用类似的打字稿,但使用打字稿条件更新值,例如[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
于 2016-06-16T15:12:51.423 回答
1

我遇到了同样的问题,这个打字稿对我来说效果很好,结果就是你想要达到的。

如您所见,当在页面上设置前端布局时使用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-|
            }
        }
    }
}

我希望我对您有所帮助。

于 2018-02-05T18:32:51.757 回答