我是TYPO3的新手,在线阅读几个博客,了解后端布局和模板的概念。我的问题可能非常简单和基本。
我使用left, right and middle columns
为我的页面创建了一个后端布局。此树下的页面也使用具有三列的相同后端布局。
但是,left and right
列对所有网页都保持不变,只有middle column
会有不同的内容。
现在我正在每页的左,右和中间栏添加内容,这是非常时间。
我可以在一页上为left and right
添加内容,并在每个其他页面上覆盖middle
列内容吗?
答案 0 :(得分:1)
是的,这很简单。您需要使用TypoScript属性“slide”:
styles.content.getRight.slide = -1
表示TYPO3遍历根线,直到找到填充右列的页面(对左列使用getLeft)。
因此,您可能希望在根页面上显示右侧和左侧列的内容,并删除子页面中的内容。
请注意以下缓存问题:如果更改根页面上的内容,这并不意味着重建了继承此内容的页面缓存。如果要在编辑根页面上的内容时清除整个(!)缓存,请输入
TCEMAIN.clearCacheCmd = all
到根页面的页面TS配置。我不建议在更大的网站上这样做。
有一些扩展可以帮助您清除仅某个分支的缓存,例如http://typo3.org/extensions/repository/view/sm_clearcachecm和http://typo3.org/extension-manuals/stg_clearcache/2.1.2/view/。
在评论中编辑答案中的问题:如果要将幻灯片功能用于除默认列之外的其他列,则可以复制和修改内容对象:
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
并将其用作模板中的子部分。
答案 1 :(得分:0)
lorenz 描述的slide
是一种可能性,其他(如果您不希望允许编辑者修改列)是使用TypoScript填充这些列并将其隐藏在BE。
要在某些隐藏页面上“声明”内容,然后在其他页面上使用它,您只需使用CONTENT
cObject(其中123
是该隐藏页面的uid
),如:
styles.content.getLeft < styles.content.get
styles.content.getLeft {
select.where = colPos=1
select.pidInList = 123
}
(注意:从头顶写下,需要测试)
要在BE中仅显示所需的列,请在PageTS
最后,您可以混合使用方法 - 在子页面上使用幻灯片+隐藏列,这样您就可以只在主页面上填充它,并且它将被继承到所有级别,而不会被覆盖。
答案 2 :(得分:0)
我也赞成@ biesior的解决方案。我在后端处理重复内容的方式不同,但是:
在您的情况下,BE布局只需要页面的中间列。
然后我会创建一个sysfolder,“放在一边”。在这个sysfolder中,我将为左cols内容创建一个页面(甚至是一个sysfolder),为右col创建一个页面。
现在,您可以通过Typoscript中的CONTENT提取这些页面的所有内容,然后进行设置。既不需要滑动也不需要隐藏。
答案 3 :(得分:0)
我不知道您的问题是否已解决,但如果您想避免使用TypoScript,可以使用此扩展程序:ad: content slider extension
This adds a checkbox to inherit content elements.
Extends default TypoScript object "styles.content.get" for all columns.
检查要继承的内容部分,并在子页面的静态模板中包含扩展名,您就完成了!
例如:click here