1

テンプレートでの式エンジン変数の受け渡しに問題があります。

いくつかのコードがあります:

// クエリ:

{exp:channel:entries
  channel="static"
}

// ループ内の繰り返しフィールド

{content_matrix}
   <div>
      {text_cell}
   </div>    
   {image}
{/content_matrix}

///

{/exp:channel:entries}

他のテンプレートで再利用するために、大きな内部 HTML (例は短い) 構造を持つ content_matrix フィールドを別の埋め込みテンプレートに移動したいと考えています。

そのような埋め込みを構築しようとしましたが、うまくいきません:

{embed="incl/content_matrix" matrix="{content_matrix}"}

小さいテンプレートの本体:

 {embed:matrix}
   <div>
      {text_cell}
   </div>    
   {image}
 {/embed:matrix}

このように、ID などの単一の要素を渡す場合は機能しますが、複数の要素を渡す場合は機能しません。たぶん、エントリ全体を渡す必要があります。

それはどのように行うことができますか?

ありがとう。

4

2 に答える 2

8

Stash アドオンの使用を検討しましたか?

HTML のさまざまな部分に分割されたマトリックス コンテンツをある種の区切り記号で隠し、埋め込みテンプレートで、取得した隠し領域を適切な HTML で区切り記号の検索/置換をラップできると思います。

ただし、簡単なカスタム プラグインを作成するのは簡単かもしれません。

于 2012-10-01T18:19:13.517 に答える
3

埋め込み変数は、タグではなく、解析された出力を渡します。あなたの例では:

{embed="incl/content_matrix" matrix="{content_matrix}"}

パラメータで実際に渡すのはmatrix、その特定のエントリのデータの完全な HTML テーブル出力です (Matrix フィールドは、単一のタグとして使用するとテーブルを出力するため)。

繰り返しを防ぐために実際に使用したいのはSnippetだと思います。したがって、次を含むスニペットを作成するだけです。

{content_matrix}
   <div>
      {text_cell}
   </div>    
   {image}
{/content_matrix}

そして、たとえば、matrix_loopとして保存します。次に、次のように Channel Entries ループ内に含めます。

{matrix_loop}
于 2012-09-24T19:52:50.917 に答える