2015-09-12 1 views
0

Как я могу построить суб-контент (вложенного содержания) страницы с помощью TypoScript со ссылкой на 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> 

Пример моего TypoScript:

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 с помощью Regex как это:

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 последовательно для свойств других cObjects, обратившись к ним через свойство «stdWrap».

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

Как value является stdWrap объект, вы можете использовать его, как я сделал выше.

+0

Это сделало трюк, спасибо! :) – Ren

 Смежные вопросы

  • Нет связанных вопросов^_^