2017-05-04 3 views
1

나는이 예처럼, 내 메뉴의 드롭 다운 로그인 양식을 작성하고 싶습니다 : http://bootsnipp.com/snippets/featured/fancy-navbar-login-sign-in-formTYPO3 : cObject를 통해 typoscript에 변수를 전달 하시겠습니까?

을 내가 탐색을위한 typoscript를 호출이 cObject 있습니다

<f:cObject typoscriptObjectPath="menu.navbar" /> 

를 내가의 콘텐츠를 필요 어떻게 든 타이포 스크립트에 로그인 폼. cObject를 통해 typoscript에 변수 (내 경우에는 로그인 양식)를 전달할 수 있습니까?

답변

5

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 
} 

, 열쇠를 가지고있는 데이터 배열은, titlecontent이 예상된다. 렌더링 등의 콘텐츠 객체는 아마도 유체 같을 것이다 :

<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 또는 비슷한 것을 감쌀 수 있어야합니다.