Typo3 通过“案例不起作用”定义工作部件

Typo3 通过“案例不起作用”定义工作部件,typo3,typoscript,Typo3,Typoscript,我试图使前端的布局取决于后端布局值。这是我的打字稿: temp { layout = CASE layout { key.field = backend_layout key.ifEmpty.data = levelfield:-2, backend_layout_next_level, slide default = LAYOUT_ONECOLUMN 1 = LAYOUT_ONECOLUMN 2 = LAYOUT_GALLERYTOP }

我试图使前端的布局取决于
后端布局
值。这是我的打字稿:

temp {
  layout = CASE
  layout {
    key.field = backend_layout
    key.ifEmpty.data = levelfield:-2, backend_layout_next_level, slide

    default = LAYOUT_ONECOLUMN
    1 = LAYOUT_ONECOLUMN
    2 = LAYOUT_GALLERYTOP
  }

  pageContent = TEMPLATE
  pageContent {
    template = FILE
    template.file = fileadmin/templates/index.html
    workOnSubpart < temp.layout
    marks {
      COLUMN0 < styles.content.getLeft
      COLUMN1 < styles.content.get
      COLUMN2 < styles.content.getRight
      COLUMN3 < styles.content.getBorder
    }
  }
}

page = PAGE
page {
  10 < temp.pageContent
}
temp{
布局=案例
布局{
key.field=backend\u布局
key.ifEmpty.data=levelfield:-2,后端\u布局\u下一级,幻灯片
默认值=布局\一列
1=一列的布局
2=布置图\厨房顶部
}
页面内容=模板
页面内容{
模板=文件
template.file=fileadmin/templates/index.html
工作部件<临时布局
标记{
第0列
这是相应的html摘录:

<!-- ###LAYOUT_ONECOLUMN### begin -->
    EINSPALTIG ;)
<!-- ###LAYOUT_ONECOLUMN### end -->

<!-- ###LAYOUT_GALLERYTOP### begin -->
###COLUMN0###

<div class="grid2">
    ###COLUMN1###
</div>

<aside class="grid1">
    ###COLUMN2###
</aside>
<!-- ###LAYOUT_GALLERYTOP### end -->

eInspating;)
###第0列###
###专栏1###
###专栏2###
结果是一个空白页。为什么这不起作用?出于调试目的,我执行了以下操作:

temp {
  layout = CASE
  layout {
    key.field = backend_layout
    key.ifEmpty.data = levelfield:-2, backend_layout_next_level, slide

    default = TEXT
    default.value = LAYOUT_ONECOLUMN
    1 = TEXT
    1.value = LAYOUT_ONECOLUMN
    2 = TEXT
    2.value = LAYOUT_GALLERYTOP
  }
}

page = PAGE
page {
  10 < temp.layout
}
temp{
布局=案例
布局{
key.field=backend\u布局
key.ifEmpty.data=levelfield:-2,后端\u布局\u下一级,幻灯片
默认值=文本
default.value=布局\一列
1=文本
1.value=布局\一列
2=文本
2.value=布局\厨房顶部
}
}
第页
页面{
10<温度布局
}
这会按预期将“LAYOUT_GALLERYTOP”打印到页面上

我做了第二次测试:

temp {
  pageContent = TEMPLATE
  pageContent {
    template = FILE
    template.file = fileadmin/templates/index.html
    workOnSubpart = LAYOUT_GALLERYTOP
    marks {
      COLUMN0 < styles.content.getLeft
      COLUMN1 < styles.content.get
      COLUMN2 < styles.content.getRight
      COLUMN3 < styles.content.getBorder
    }
  }
}

page = PAGE
page {
  10 < temp.pageContent
}
temp{
页面内容=模板
页面内容{
模板=文件
template.file=fileadmin/templates/index.html
工作部件=布局\厨房顶部
标记{
第0列
这也产生了所需的布局,但当然不会响应更改后端中的后端_布局值

为什么我不能通过
案例
定义
workunsubpart
值。是否有解决方案或解决办法


提前感谢。

案例是一个cObject,因此您需要使用stdWrap cObject功能:

temp {
  layout = CASE
  layout {
    key.field = backend_layout
    key.ifEmpty.data = levelfield:-2, backend_layout_next_level, slide

    default = TEXT
    default.value = LAYOUT_ONECOLUMN
    1 = TEXT
    1.value = LAYOUT_ONECOLUMN
    2 = TEXT
    2.value = LAYOUT_GALLERYTOP
  }

  pageContent = TEMPLATE
  pageContent {
    template = FILE
    template.file = fileadmin/templates/index.html
    workOnSubpart.cObject < temp.layout
    marks {
      COLUMN0 < styles.content.getLeft
      COLUMN1 < styles.content.get
      COLUMN2 < styles.content.getRight
      COLUMN3 < styles.content.getBorder
    }
  }
}     
temp{
布局=案例
布局{
key.field=backend\u布局
key.ifEmpty.data=levelfield:-2,后端\u布局\u下一级,幻灯片
默认值=文本
default.value=布局\一列
1=文本
1.value=布局\一列
2=文本
2.value=布局\厨房顶部
}
页面内容=模板
页面内容{
模板=文件
template.file=fileadmin/templates/index.html
workunspart.cObject
工作起来很有魅力。谢谢!