2017-05-04 11 views
1

私は、この例のように、私のメニューのドロップダウンログインフォームを作成したいと思います:http://bootsnipp.com/snippets/featured/fancy-navbar-login-sign-in-formTYPO3:変数をcObject経由でtyposcriptに渡しますか?

私は、ナビゲーションのためのTypoScriptを呼び出し、このcObjectにあります

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

を私はのコンテンツを取得する必要があります何とかログイン用のフォームをメニューのtyposcriptに挿入します。変数(私の場合はログインフォーム)を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> 

も通常の変数を取ります。あなたのユースケースに応じて、それらのケースの1つがあなたが望むものかもしれません。

編集:ただし、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などをラップすることは可能です。

関連する問題