TYPO3 CMS中的TS文件中的后端布局7.6.18如何使其正常工作?

时间:2017-04-23 11:16:08

标签: templates typo3 fluid

能够在TYPO3 CMS 7.6.18设置中使用不同的模板。我包含一个pageTSConfig.ts文件,其后端布局如下所示。 (另请参阅此pastebin:https://pastebin.com/BcYKrYKh以及它在TYPO3对象浏览器中的样子:https://pastebin.com/LVXqNUZC

### Backend Layouts #####

mod.web_layout.BackendLayouts{
1 {
  title = Standaard Layout
  config {
  backend_layout {
    colCount = 2
    rowCount = 1
    rows {
        1 {
            columns {
                1 {
                    name = linker_inhoud
                    colPos = 1
                }
                2 {
                    name = midden_inhoud
                    colPos = 0
                }
            }
        }
    }
}

  }
}


}

由于BE-Layout是用文件完成的,在我的TSconfig.ts中我已经像上面提到的手册一样添加了pagets__0。这仍然无效。我在这里失踪了什么?这是我所拥有的TSconfig的一部分,这里是完整的配置:

page.10.file.stdWrap.cObject = CASE
page.10.file.stdWrap.cObject {
    key.data = levelfield:-1, backend_layout_next_level, pagelayout, slide
    key.override.field = pagelayout
    default = TEXT
    default.value = fileadmin/templates/index.html
    pagets__0 = TEXT
    pagets__0.value = fileadmin/templates/index.html
    pagets__1 = TEXT
    pagets__1.value = fileadmin/templates/layouts/small_header_page.html
    pagets__2 = TEXT
    pagets__2.value = fileadmin/templates/layouts/alternatieve_pagina.html
}

全部包括在内:         

2 个答案:

答案 0 :(得分:1)

“backend_layout”之间存在差异,“backend_layout”是可以通过“levelfield”和“pagelayout”获取的真实数据库字段的名称,这是一种摆脱“levelfield”的虚拟字段方法

https://docs.typo3.org/typo3cms/TyposcriptReference/DataTypes/Gettext/Index.html#pagelayout

key.data = pagelayout

应该为你完成整个工作,只在这种情况下你可以使用像

这样的东西
pagets__x

访问实际布局。

所以你的代码应该是:

page.10 = FLUIDTEMPLATE
page.10.file.cObject = CASE
page.10.file.cObject {
    key.data = pagelayout
    default = TEXT
    default.value = fileadmin/templates/index.html
    pagets__0 = TEXT
    pagets__0.value = fileadmin/templates/index.html
    pagets__1 = TEXT
    pagets__1.value = fileadmin/templates/layouts/small_header_page.html
    pagets__2 = TEXT
    pagets__2.value = fileadmin/templates/layouts/alternatieve_pagina.html
}

或者它应该是

page.10 = FLUIDTEMPLATE
page.10.file.cObject = CASE
page.10.file.cObject {
    key.data = levelfield:-1, backend_layout_next_level, slide
    key.override.field = backend_layout
    default = TEXT
    default.value = fileadmin/templates/index.html
    1 = TEXT
    1.value = fileadmin/templates/layouts/small_header_page.html
    2 = TEXT
    2.value = fileadmin/templates/layouts/alternatieve_pagina.html
}

但不是两种方法的混合。

答案 1 :(得分:0)

在我告诉您代码可能出现的问题之前,让我向您解释一些事情。

您已将模板放在fileadmin目录中。这不再是放置这些文件的地方,因为fileadmin是图像,视频或文档等资源的公共场所。它可能适用于文件列表中的每个后端用户,编辑器在任何情况下都不能编辑模板。建议的处理模板的方法是将它们放入可以通过扩展管理器安装的自己的扩展中。

在你的pastebin片段中,有一行userFunc = tx_templavoila_pi1->main_page,你可能会混淆安装中的东西而不想在templavoila旁边使用FLUIDTEMPLATE,因为它可能会混淆什么渲染方法用于什么你页面上的东西。对于整个TYPO3安装,最好坚持使用templavoila或Fluid。

现在,你的TypoScript中有这些行:

key.data = levelfield:-1, backend_layout_next_level, pagelayout, slide
key.override.field = pagelayout

页面记录中没有字段pagelayout。您想要解决的字段是backend_layout