TYPO3:如何将页面内容插入模板?

7
我有一些内容希望在TYPO3网站的多个页面上显示。我可以将其插入模板中,但我也希望这些内容可以在富文本编辑器中进行编辑。
所以我想到了创建一个隐藏页面,但我不知道如何将此内容插入模板中。
需要使用“select” typoscript语句吗?
另外,作为后续问题,我是否可以添加一些内容,仅包括具有此“页面ID”作为它们在页面层次结构中的直接父级的页面。
3个回答

8

我不太理解第二个问题。 如果您想将某些记录仅包含在其他页面下的页面中,那么这显然可以实现:

[PIDinRootline = pages-uid, pages-uid, ...]
temp.foo = RECORDS
temp.foo {
    tables = tt_content
    source = ID # Enter the object's ID here
}
[end]

另一方面,如果你想包含所有来自某个页面子页面的记录,则可以尝试以下方法:

1 = CONTENT
  1.table = tt_content
  1.select {
    pidInList = parent-uid
  }

不确定我是否理解正确。 Dmitri。


5

来自在每个页面上包含Typo3内容元素

temp.foo = RECORDS
temp.foo {
    tables = tt_content
    source = ID # Enter the object's ID here
}

请注意,ID是内容记录的ID,而不是页面ID。

但这并没有回答如何仅包括具有特定父级的页面/记录的问题。


这不起作用,我已经将完全相同的代码放入我的扩展模板中,但内容元素没有显示出来。 - user3182532

4
您可以设置一个隐藏页面,然后通过 typoscript 在需要的页面(或整个页面树下)“导入”内容元素。 “诀窍”是使用 colPos 和 select 语句。这样,您甚至可以在一个(隐藏的)页面上放置多个(不同的)内容元素,这些元素会显示在不同的页面上(取决于它们所在的列的设置)。
示例:
  • 创建一个隐藏(或系统)页面(此处示例页ID = $PID_STATIC)
  • 在此页面上创建内容元素(文本)
  • 编辑此内容元素以在右侧列上显示(右侧等于 colPos=2)
  • 将以下 typoscript 放置到要显示内容元素的模板中。您可以通过 PID_STATIC 中的常量或将其“硬编码”到 typoscript 中来设置 pid(pageId)。

.

lib.aditionalcontent = COA
lib.aditionalcontent { 
   10 = CONTENT
    10 {
        table = tt_content
        select.where = colPos = 2
        select.orderBy = sorting
        select.pidInList = {$PID_STATIC}
    }
  • 在模板中添加元素lib.aditionalcontent,以显示内容。例如:

.

page.10 = TEMPLATE
page.10.template = FILE
page.10.template.file = fileadmin/maintemplate.htm
page.10.workOnSubpart = DOCUMENT_BODY
page.10.marks.ADITIONAL_CONTENT < lib.aditionalcontent

请注意,您需要根据将内容元素设置到的列来设置colPos,否则它将不会显示。

您可以使用不同的列来为需要显示/不需要显示在特定页面上的不同内容进行设置。

这也适用于系统文件夹和非隐藏页面。

如果您使用TemplaVoila,则应该可以正常工作,尽管您必须切换到列表视图以查看并设置内容元素的列(如果对于此非管理员用户未隐藏)。

要找出哪个colPos编号是列的哪个位置,请转到phpMyAdmin并在tt_content表中搜索“colPos”字段。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接