f:cObject
에는 data
속성이 있으며, 다른 종류의 값을 사용할 수 있습니다.
일반적으로 데이터 특성에는 배열이 사용되므로이 값을 사용하여 typoscript의 .field
속성을 사용하여 콘텐츠 개체를 렌더링 할 수 있습니다.
예는 : 당신이 그렇게 TypoScript이있는 경우
lib.testFluid = COA
lib.testFluid {
wrap = <div>|</div>
10 = TEXT
10.field = title
10.wrap = <b>|</b>
20 = TEXT
20.field = content
}
, 열쇠를 가지고있는 데이터 배열은, title
및 content
이 예상된다. 렌더링 등의 콘텐츠 객체는 아마도 유체 같을 것이다 :
<f:cObject typoscriptObjectPath="lib.testFluid" data="{title: 'Hello World', content: 'Foobar'}" />
을하지만, 당신은 그냥 "컨텐츠"(예 : 문자열의 내용)가 있으며 콘텐츠 객체의 한 장소에서 출력하려는 경우, 당신은 할 수 있는 그대로 전달하고 TypoScript의 .current
속성을 사용하여 "현재 값"을 사용하게합니다.
lib.testFluid = COA
lib.testFluid {
wrap = <div>|</div>
10 = TEXT
10.current = 1
10.wrap = <b>|</b>
}
유체에
: 코스 데이터
<f:cObject typoscriptObjectPath="lib.testFluid" data="simple text content" />
또는
<f:cObject typoscriptObjectPath="lib.testFluid">simple text content</f:cObject>
또한 일반 변수 걸린다. 유스 케이스에 따라 그 중 하나가 원하는 것일 수 있습니다.
편집 : 그러나 HMENU와 함께 데이터를 사용하려는 경우 조금 복잡해 보입니다. 중첩 된 TMENU 인스턴스 (또는 다른 메뉴)는 HMENU가 해당 메뉴 항목의 현재 페이지로 덮어 쓰기 때문에 다른 데이터 값을 갖습니다. 당신은 아마도 복잡한 회피를하거나, TMENU/GMENU 등에서 원하는 내용을 삽입하지 않아야 할 것입니다. 이 경우 대신 메뉴를 유체로 완전히 렌더링하는 것이 좋습니다.
편집 2 - 예
이런 식으로 뭔가가 작동하지 않을 :
lib.testFluid = HMENU
lib.testFluid {
special = directory
special.value = 1
wrap = <ul>|</ul>
1 = TMENU
1 {
NO.stdWrap.cObject = COA
NO.stdWrap.cObject {
10 = TEXT
10.field = title
10.noTrimWrap = || |
20 = TEXT
20.current = 1
}
}
}
20.current = 1
유체 viewhelper에서 제공하는 데이터의 값을 포함하지 않을 것이다, "데이터"때문에 의 TMENU가 HMENU 콘텐츠 개체에 의해 현재 페이지로 변경되었습니다.
그러나 HMENU 주변에 원하는 내용을 삽입하려면 HMENU 주변에 COA 또는 비슷한 것을 감쌀 수 있어야합니다.