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

时间:2009-07-05 23:03:44

标签: typo3 typoscript

我想要在TYPO3网站的多个页面上显示一些内容。我可以将其插入到模板中,但我也希望在富文本编辑器中可以编辑该内容。

所以我想创建一个隐藏页面,但我不知道如何将这些内容插入到模板中。

是否需要select typoscript声明?

另外,作为后续问题,我可以添加一些内容,只包含将页面ID 作为页面层次结构中的直接父级的页面。

3 个答案:

答案 0 :(得分: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
  }

不知道我能不能帮到你。 梅德。

答案 1 :(得分:5)

来自Include typo3 content elements on every page

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

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

但这并没有回答如何仅包含某个父母的页面/记录的问题。

答案 2 :(得分:4)

您可以根据需要设置隐藏页面,然后通过页面上的typoscript(或下面的整个页面树)“导入”给定页面上的内容元素。 “技巧”是将 colPos 与select-statement一起使用。有了这个,您甚至可以将多个(不同的)内容元素放在一个(隐藏)页面中,这些页面显示在不同的页面上(取决于它们所在的列的设置。

示例:

  • 创建隐藏(或系统)页面(此处为example-pageid = $ PID_STATIC)
  • 在此页面上创建内容元素(文本)
  • 编辑此内容元素以显示在右栏(右侧等于colPos = 2)
  • 将以下拼写错误放入要显示内容元素的模板中。您可以通过PID_STATIC在常量中设置pid(pageId)或将其“硬编码”到typoscript中。

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,否则它将无法显示。

您可以使用不同的列为不同的内容执行此操作,这些内容必须显示/不应显示在特定页面上。

这也适用于sytemfolders和非隐藏页面。

如果您使用TemplaVoila,这也应该有效,尽管您必须切换到列表视图以查看和设置内容元素的列(如果没有为此非管理员用户隐藏)。

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