2017-10-18 2 views
0

私は単純なバックエンドモジュールを持っています。そこでは、新しい "テーマ"を切り替えたり作成したりできます。簡単にするため、モデルにロゴとカラーコードのみが含まれているとします。私のtyposcriptセットアップでは、私はDBから項目を取得するために次のコードを使用しています:typoscriptを使ってCONTENT - > renderObjを変数に分割する方法は?

temp.theme= CONTENT 
temp.theme{ 
      select{ 
       ... 
      } 
      renderObj = COA 
      renderObj { 
        #theme color 
        10 = TEXT 
        10.field = color 
        ... 
        #theme logo 
        40 = FILES 
        40{ 
         references { 
           ... 
         } 
         renderObj = IMAGE 
         renderObj { 
           wrap = <div class="logo">|</div> 
           file.import.data = file:current:originalUid 
         } 
        } 
      } 
} 

私はどのようにこのオブジェクトを変数に分割できますか? は、これは動作しませんが、私はそれは私が達成しようとしているものの良い表現だと思い:

lib.logo = COA 
lib.logo < temp.theme.renderObj.40 

また、私は(もちろん、これはどちらか動作しません)、次のように色を設定したいです:

page.cssInline.1010 < temp.theme.renderObj.10 

私がやろうとしていることを達成するためのよりよい方法がありますか?どのような私のためにこれまでに取り組んでいることは、このオブジェクトをコピーすることで、その後、私は使用していない設定を解除するもの:

temp.logo = COA 
temp.logo{ 
      10 < temp.theme 
      10.renderObj.10 > 
      ... 
      #10.renderObj.40 > 
      ... 
} 

を私はもっと簡単な方法があることを確信している、しかし、私はそれを見つけることができませんでした。

+0

ページに出力する内容を説明できますか? –

+0

はい、たとえば、このようなロゴをレンダリングしたいとします。このように動作している間、私にはより洗練されたソリューションがあるかどうかを知りたいと思いますlib.logo

+0

PAGEオブジェクトがFLUIDTEMPLATEを使用してページを作成している場合、流体テンプレートに「変数」を割り当てることができます:https:///docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Fluidtemplate/Index.html#variables –

答えて

1

Typocriptの演算子とcObjectsについて詳しく知る必要があります。

lib.logo = COA 
lib.logo < temp.theme.renderObj.40 

これにより、lib.logoがCOAのcObjectになり、temp.themeのrenderObjのみがコピーされます。しかし、renderObjはそれが属するCONTENTオブジェクトなしでは役に立たない。したがって、それを

lib.logo < temp.theme 

に変更し、それをオブジェクト全体にコピーします。以前はCOAとして宣言する必要はありません。たぶんあなたは一時的なものは必要ないかもしれません。 object - lib.logo全体をCONTENTオブジェクトにすることができます。

同じことがpage.cssInline.1010に適用されます。renderObjだけをコピーすることはできません。それにオブジェクト全体をコピーするか、それが直接コンテンツの対象となりますhttps://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/LoadRegister/Index.html?highlight=load_register

すべてのcObjectsドキュメント:https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Index.html

page.cssInline.1010 = CONTENT 
page.cssInline.1010 { 
    select{ 
    ... 
    } 
    renderObj = TEXT 
    renderObj { 
    field = color  
    } 
} 

renderObjのいくつかの一時結果を格納する唯一の方法はLOAD_REGISTERオブジェクトを使用しています オペレーター:

関連する問題