Typoscript通过pidInList获取Onepage-Layouted Site的内容

时间:2017-01-10 10:38:29

标签: typo3 typoscript

我有一个onepage-layout,后端的每个页面都是这个前端页面的一部分。每个部分/后端页面都有自己的布局。以下脚本选择正确的布局:

20 = FLUIDTEMPLATE
      20 {
            file.cObject = CASE
            file.cObject {
                key.field = uid

                5 = TEXT
                5.value = fileadmin/template/green.html

                6 = TEXT
                6.value = fileadmin/template/blue.html

                default = TEXT
                default.value = fileadmin/template/default.html
            }

这很好用。现在我需要每个部分都有正确的内容。我尝试了以下方法:

        variables {
                content < styles.content.get
                content{
                    select {
                        pidInList = 5
                        #pidInList = uid
                        where = colPos= 0 
                        #where = colPos={field: colPos}

                        orderBy = sorting
                    }
                }
            }

将pidInList设置为类似5的静态值。但我需要选择布局文件的正确内容。为什么uid不工作?

这是完整的块:

lib.sectionContent = HMENU
lib.sectionContent {
  1 = TMENU
  1 {
    NO = 1
    NO {
      doNotLinkIt = 1
      stdWrap >
      stdWrap {
        cObject = COA
        cObject {
          if.value = 5
          if.equals.field = doktype
          if.negate = 1
          10 < temp.titleSectionId
          10.wrap = <div id="|">


          20 = FLUIDTEMPLATE
          20 {
                file.cObject = CASE
                file.cObject {
                    key.field = uid

                    5 = TEXT
                    5.value = fileadmin/template/green.html

                    6 = TEXT
                    6.value = fileadmin/template/blue.html

                    default = TEXT
                    default.value = fileadmin/template/default.html
                }

                variables {
                    content < styles.content.get
                    content{
                        select {
                            pidInList.field = uid

                            where = colPos= 0 
                            #where = colPos={field: colPos}

                            orderBy = sorting
                        }
                    }
                }
          }
          30 = TEXT
          30 {
            wrap = </div>
          }
        }
      }
    }
  }
}

这个总是选择默认值: - (

            variables {
                content < styles.content.get
                content{
                    select {
                        pidInList.cObject = CASE
                        pidInList.cObject {
                            key.field = uid

                            5 = TEXT
                            5.value = 5

                            default = TEXT
                            default.value = 10
                        }
                    }
                }
            }

1 个答案:

答案 0 :(得分:0)

在模板部分中使用uid:

In [1]: "".format(100)
Out[1]: ''

In [2]: str(100)
Out[2]: '100'

您需要为内容选择指定字段uid的用法:

key.field = uid

BTW 这样就可以为页面分配模板硬编码 请注意字段pidInList.field = uid layout,因此编辑者可以从模板池中为每个页面选择一个布局。

与此同时,我不确定是否可以直接为pidInList选择字段 但还有另一种选择:标记
对于选择,您可以选择使用和定义标记以提高可读性。

backend_layout