2015-09-12 40 views
0

如何建立一个子内容使用Typo脚本参照父母的header_link领域页面(嵌套内容)?TypoScript/Typo3:如何使用header_link值构建页面的子内容?

所需的输出是一样的东西:

<h1>Title of parent</h1> 
<p class="prt">Body of parent</p> 
<h3>Title of Child</h3> 
<p class="cld">Contents of child</p> 

我的Typo脚本样本:

temp.myParentVal = CONTENT 
temp.myParentVal { 
    table = tt_content 
    select { 
    begin = 1 
    orderBy = sorting 
    where = (colPos = 1) 
    } 
    renderObj = COA 
    renderObj { 

    10 = TEXT 
    10 { 
    required = 1 
    wrap = <h1> | </h1> 
    stdWrap.field = header 
    } 
    20 = TEXT 
    20 { 
    required = 1 
    wrap = <p class="prt"> | </p> 
    stdWrap.field = bodytext 
    } 


    #                # 
    # WHAT SHOULD I DO HERE TO SHOW THE CHILD CONTENT OF THIS PAGE # 
    # (REFERENCED BY header_link FIELD IN THE PARENT'S ROW),  # 
    # WHICH HAS THE FORMAT OF <child_pid#child_uid>, EG.'11#28'  # 
    #                # 


    stdWrap.wrap = <div> | </div> 
} 

我想利用母公司的header_link字段的值来生成用于孩子的内容。 (我使用TYPO3 v 6.2.14)

回答

1

您可以使用嵌套CONTENT元素,并通过正则表达式拆分header_link这样的:

30 = CONTENT 
30 { 
    table = tt_content 
    select { 
    uidInList { 
     field = header_link 
     stdWrap.replacement.10 { 
     search = /^.+#/ 
     replace = 
     useRegExp = 1 
     } 
    } 
    pidInList { 
     field = header_link 
     stdWrap.replacement.10 { 
     search = /#.+$/ 
     replace = 
     useRegExp = 1 
     } 
    } 
    } 
    renderObj = COA 
    renderObj { 
    10 = TEXT 
    10.value { 
     required = 1 
     wrap = <h3> | </h3> 
     field = header 
    } 
    20 = TEXT 
    20.value { 
     required = 1 
     wrap = <p class="cld"> | </p> 
     field = bodytext 
    } 
    } 
} 

另外,我想建议你使用field财产直接在TEXT元素(工作)。但我在文档中查询到:

stdWrap属性在对象的根级别上可用。这是非标准的!通过访问属性“stdWrap”,您应该将这些stdWrap属性一致地用于其他cObject的属性。

https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Text/Index.html

由于valuestdWrap对象,你可以像我上面那样使用它。

+0

这样做的窍门,谢谢! :) – Ren

相关问题