Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Layout 对多个页面使用TYPO3中的后端页面部分_Layout_Typo3_Backend - Fatal编程技术网

Layout 对多个页面使用TYPO3中的后端页面部分

Layout 对多个页面使用TYPO3中的后端页面部分,layout,typo3,backend,Layout,Typo3,Backend,我对TYPO3非常陌生,在网上阅读了几篇博客,了解了后端布局和模板的概念。我的问题可能非常简单和基本 我为我的页面创建了一个包含左栏、右栏和中栏的后端布局。此树下的页面也使用相同的后端布局,有三列 但是,所有页面的左栏和右栏将保持不变,只有中间栏的内容不同 现在我在每一页的左栏、右栏和中栏添加内容,这非常耗时 我是否可以只在一页的左侧和右侧添加内容,并在每一页上覆盖中间列的内容?是的,这很简单。您需要使用TypoScript属性幻灯片: styles.content.getRight.slide

我对TYPO3非常陌生,在网上阅读了几篇博客,了解了后端布局和模板的概念。我的问题可能非常简单和基本

我为我的页面创建了一个包含左栏、右栏和中栏的后端布局。此树下的页面也使用相同的后端布局,有三列

但是,所有页面的左栏和右栏将保持不变,只有中间栏的内容不同

现在我在每一页的左栏、右栏和中栏添加内容,这非常耗时


我是否可以只在一页的左侧和右侧添加内容,并在每一页上覆盖中间列的内容?

是的,这很简单。您需要使用TypoScript属性幻灯片:

styles.content.getRight.slide = -1
这意味着TYPO3会沿着根线移动,直到找到一个右栏已填充的页面为止。左栏使用getLeft

因此,您可能希望在根页面上有右列和左列的内容,并删除子页面中的内容

请注意以下缓存问题:如果更改根页面上的内容,这并不意味着继承此内容的页面的缓存将重建。如果你想清除整个!缓存编辑根页面上的内容时,将

TCEMAIN.clearCacheCmd = all
到根页面的TS配置页面。我不建议在更大的网站上这样做

有一些扩展可以帮助您仅清除特定分支的缓存,例如和

编辑注释中的问题答案:如果要对默认列以外的其他列使用幻灯片功能,可以复制和修改内容对象:

lib.contentCol99 < styles.content.get # copies colPos = 0
lib.contentCol99.select.where = colPos=99 # uses the content from col 99
lib.contentCol99.slide = -1 # walk the rootline until content is found
编辑2:使用FLUIDTEMPLATE时,可以使用cObject帮助程序使用以下内容:

<f:cObject typoscriptObjectPath="lib.contentCol99">
   Lorem ipsum dummy 
</f:cObject>
使用传统的基于子部分和标记的模板,将内容分配给模板,例如:

page = PAGE
page.10 = TEMPLATE
[...]
page.10.subparts.contentCol99 < lib.contentCol99
lorenz所描述的幻灯片是一种可能性,如果你不想让编辑修改这些列,另一种可能性是使用打字脚本填充这些列并将它们隐藏在BE中

要“声明”某个隐藏页面上的内容,然后在其他页面上使用它,只需使用一个cObject,其中123是该隐藏页面的uid,如:

styles.content.getLeft < styles.content.get
styles.content.getLeft {
    select.where = colPos=1
    select.pidInList = 123
} 
注意:从我的头顶写下,需要测试

要在页面中仅显示所需的列,请在页面中使用此代码段


最后,您可以混合使用这些方法-在子页面上使用幻灯片+隐藏列,这样您就可以只在主页上填充它,它将被继承到所有级别,而不会被覆盖。

我也支持@biesior的解决方案。我在后端处理重复内容的方式有所不同,不过:

在您的情况下,BE布局只需要页面的中间列

然后我会在旁边做一个sysfolder。在这个sysfolder中,我将为左列内容创建一个页面甚至一个sysfolder,为右列创建一个sysfolder


现在,您可以通过打字稿中的内容拉出这些页面的所有内容,并且您已经设置好了。既不需要滑动也不需要隐藏。

我不知道您的问题是否已解决,但如果您想避免打字错误,可以使用此扩展:

检查要继承的内容部分,并将扩展包含在子页面的静态模板中,就完成了


例如:

嘿!非常感谢你。这为我做到了边栏This adds a checkbox to inherit content elements. Extends default TypoScript object "styles.content.get" for all columns.