2016-07-01 4 views
2

TYPO3 v7 +のEXTbaseと流体を使用して拡張を調理しています。 私はここにいます。特定のコントローラー条件に基づいて流体テンプレートをレンダリングするためです。ユーザーが指定したテンプレートファイルからレンダリングされるhtmlコードのようなものを必要とします。私は状況を回避するためのjQueryを使用しましたTYPO3動的にレンダリングされたテンプレートでの流体の使用

..

<script> 
     $(function(){ 
      $("#some_div_id").load("template_file.html"); 
     }); 
    </script> 

..私は私が期待される結果を得たもの推測ではなく、本当に..

<div class="clearfix"> 
    <ul id="image-gallery" class="gallery list-unstyled cS-hidden"> 
     <f:for each="{slider}" as="user" key="label" iteration="iterator"> 
      <li data-thumb="{user.src}"> 
       <f:image crop="{user.crop}" treatidasreference="true" src="{user.filepath}" alt="{user.title}" style="width:100%; height:auto;"></f:image> 
       <f:if condition="{config.metadata.switch}!= 0"> 
        <f:if condition="{user.title}"> 
        <p class="light-caption" style="background: {config.metadata.opacity}; color: {config.metadata.color}; font-size: {config.metadata.size}%; text-align:{config.metadata.align};">{user.title}</p> 
        </f:if> 
       </f:if> 
      </li> 
     </f:for> 
    </ul> 
</div> 

は、これは上記のコードはありますTypoScriptの変数は変更されていません。少し恥ずかしい!!
時計の周りに答えを探しています。

答えて

1

プレーンテンプレートをサーバーからロードしています。テンプレートをレンダリングできるPHPコードはありません。コントローラのアクションが実行されるようにリクエストを送信し、テンプレートをレンダリングして、レンダリングされた結果をあなたに送信する必要があります。

これを行う最も簡単な方法は、拡張子typoscript_renderingを使用することです。これを使用するには、拡張機能が提供するViewHelperを使用してコントローラアクションへのリンクをレンダリングします。それは次のようになります。

{namespace helhum=Helhum\TyposcriptRendering\ViewHelpers} 

// Other stuff 

<helhum:uri.ajaxAction action="actionName" controller="YourController"/> 

たぶん、あなたは他のパラメータを追加する必要がある - なViewHelperは、他のf:uri.* -ViewHelpersが取るのと同じパラメータを取ります。あなたのJSでは、そのリンクにリクエストを送ることができます(おそらくリンクをいくつかのデータ属性に入れることができます)、レンダリングされたテンプレートを受け取ります。

1

部分です:あなたは、コントローラ

<f:if condition="{showPartial1}"> 
    <f:render partial="SomePartial1" arguments="{_all}" /> 
</f:if> 
<f:if condition="{showPartial2}"> 
    <f:render partial="SomePartial2" arguments="{_all}" /> 
</f:if> 

パーシャルから提供された変数に基づく条件を追加することになり、あなたの流体テンプレートでhttps://docs.typo3.org/typo3cms/ExtbaseGuide/Fluid/ViewHelper/Render.html

通常、Partialsフォルダに追加されます(Templatesフォルダと同じフォルダにある必要があります)。

  1. パーシャル/ SomePartial1.html
  2. パーシャル/ SomePartial2.html
関連する問題