2

我对 TYPO3 很陌生,在线阅读了一些博客并了解了后端布局和模板的概念。我的问题可能非常简单和基本。

我为我的页面创建了一个后端布局left, right and middle columns。此树下的页面也使用相同的三列后端布局。

但是,所有页面的列left and right将保持不变,只是middle column内容不同。

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

我可以只left and right为一个页面添加内容并覆盖middle所有其他页面上的列内容吗?

4

4 回答 4

1

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

styles.content.getRight.slide = -1

表示 TYPO3 遍历根行,直到找到填充右列的页面(对左列使用 getLeft)。

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

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

TCEMAIN.clearCacheCmd = all

到根页面的Page TS Config。我不建议在更大的网站上这样做。

有一些扩展可以帮助您仅清除某个分支的缓存,例如http://typo3.org/extensions/repository/view/sm_clearcachecmhttp://typo3.org/extension-manuals/stg_clearcache/2.1.2/查看/ .

编辑评论中问题的答案:如果您想将幻灯片功能用于默认列以外的其他列,您可以复制和修改内容对象:

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

并将其用作模板中的子部分。

于 2013-09-05T08:46:51.850 回答
0

lorenzslide描述的一种可能性,其他(如果您不想让编辑者修改列)是使用 TypoScript 填充这些列并将它们隐藏在 BE 中。

要在某个隐藏页面上“声明”内容,然后在其他页面上使用它,您只需要使用一个CONTENTcObject(该隐藏页面123的一个在哪里uid),例如:

styles.content.getLeft < styles.content.get
styles.content.getLeft {
    select.where = colPos=1
    select.pidInList = 123
} 

注意:写在我的头上,需要测试

要在 BE 中仅显示所需的列,请在您的PageTS

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

于 2013-09-05T09:25:40.860 回答
0

我也赞成@biesior 的解决方案。不过,我在后端处理重复内容的方式是不同的:

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

然后我会创建一个 sysfolder,“放在一边”。在这个 sysfolder 中,我将为左侧 cols 内容和右侧 cols 内容创建一个页面(甚至是 sysfolder)。

现在,您可以通过 Typoscript 中的 CONTENT 提取这些页面的所有内容,然后就可以设置了。既不需要滑动也不需要隐藏。

于 2013-09-05T21:03:01.370 回答
0

我不知道你的问题是否解决了,但如果你想避免 TypoScript 的东西,你可以使用这个扩展:广告:内容滑块扩展

This adds a checkbox to inherit content elements. 
Extends default TypoScript object "styles.content.get" for all columns.

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

例如:点击这里

于 2013-09-06T05:16:18.530 回答