0
イメージを表示するために自分のサイトでforeachループが実行されています。しかし、表示したくない画像がいくつかありますので、これらの画像を除外するif文を追加しました。しかし、ループ内でifステートメントを使用すると、$ smarty.foreach.thumbnails.lastを使用して隠されたイメージの最後のイメージが生成されないということが問題になります。私はこれらのイメージをフィルタリングし、まだ$ smarty.foreach.thumbnails.lastを使用することができることに行くかどうSmarty foreach includingの場合
?それが立つよう
は、ここに私のコードです:
{foreach from=$images item=image name=thumbnails}
{if $image.legend != "colorschemes"}
{assign var=imageIds value="`$product->id`-`$image.id_image`"}
<li data-imgtype="{$image.legend}" class="items{if $j == 1} main-pos{elseif $j == 2} right-pos{elseif $smarty.foreach.thumbnails.last} left-pos{else} back-pos{/if}" id="{$j}">
<img src="{$link->getImageLink($product->link_rewrite, $imageIds, 'tm_large_default')|escape:'html':'UTF-8'}" alt="Owl Image" style="width:100%; margin-top:-200px;" />
</li>
{$j = $j + 1}
{/if}
{/foreach}
残念ながら私は残念ながら、他のページで使用する画像が必要なので、そのような画像を完全に除外することはできません。私はこのギャラリーから隠すだけです。残念なことに、このギャラリーでは、正しく機能するためには、最後のアイテムに特定のクラスが必要です。 – cyanoxide
@cyanoxideこれらの画像を他の場所で使用している場合は、質問のforloopの前かそれ以降ですか?コードの初期段階では、最初のforloopに{if $ image.legend!= "colorschemes"}を含めて、if条件に適合する最後の反復を見つけ出し、変数として保存することもできます。次に、2回目のforloopで{if $ j == $ newVariable}を使って、最後にあなたの条件に合う反復を見つけます。 – entis