2012-10-24 12 views

答えて

12

この質問は、私は、私は簡単な例ポストだろうと思った多くのことを思い付くようだ:この例では

{exp:channel:entries channel="whatever"} 
{switch="<div class='entry'>|"} 
<h2>{title}</h2> 
{if count != total_results}{switch="|</div>"}{/if} 
{if count == total_results}</div>{/if} 
{/exp:channel:entries} 

を、「エントリ」のクラスを持つdiv要素は、すべての2番目のエントリに巻き付けられます。フロントエンドのスイッチ変数はかなり単純です。バックエンドでは、2つの条件が使用されます。エントリがループ内の最後のエントリである場合は、DIVを閉じます。エントリがループ内の最後のエントリでない場合、DIVはすべての2番目のエントリ(ループの先頭にあるスイッチ変数を反映)ごとに閉じます。

switch変数は引用符に非常に敏感であることに注意してください。このようにHTMLをこのように挿入する場合、スイッチ変数の中に二重引用符ではなく一重引用符を使用する必要があります。これは簡単な挿入の場合は問題ありませんが、より複雑な書式設定を念頭に置いておけば、少し面倒かもしれません。うまくいけば、これはいくつかの人々を助け、このアイデアを拡張する自由を感じる。

2

この場合に役立つプラグインもありますGWcode Alternate。他の答えに記載されているネイティブのスイッチタグを使う方が好きなので、私は自分で使っていません。

0

私が使用した例は、DIVがすべてのエントリでは必要ではなく、特定の間隔を囲むDIVをラッピングするインスタンスのためのものでした。一般的に、一度に3つのエントリを含むjQueryスライダを使用する場合、例えば。これは明白に私の例の目的でした。すべての項目は、私の例が意図していた間隔であるとは考えられません。確かにそれはエッジケースですが、シンプルな条件でのみネイティブ機能を使用するチャレンジに対する簡単なソリューションをキャプチャするのに十分頻繁に発生するエッジケースです。

+0

謝罪、私は投稿を誤解し、私の応答を削除しました。価値があることについて[Columnbo](http://devot-ee.com/add-ons/column-bo)は、この種のことを調べる価値のあるツールです。 '{switch}'タグを使うよりもちょっとうんざりしていて、10個の項目ごとに間隔を置いてほしい場合は、より良いスケールになります。 –

+0

心配しない - 純粋なネイティブのものを投稿したいと思っていました。確かに、条件付きで似たようなことをするアドオンがあります。 –

関連する問題