0

私は4をリストするスライダーを持っています

  • prスライド。

    2x4の製品が表示されるように、行を追加したいと思います。

    それを実現するために、私は2つの製品をリストする必要があります。

  • 私は本当にそれを修正しようとしましたが、私のコードと私の製品のカウント方法に何か問題があります。

    ご覧ください: `{if isset($ products)} {include file =" $ tpl_dir./breadcrumb.tpl "} {assign var = count value = 0}

        {foreach from=$products item=product name=products}
    
            {if $count == 0}
                <li style="position: relative;">
            {/if}
                <div id="ProductCon">
                    <div class="prodimage"><a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} /></a></div>
                    <h3><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:35:'...'|escape:'htmlall':'UTF-8'}</a></h3>
                </div>
                {if $count == 1}
                    </li>
                {/if}
                {function name='counter2'}
                    {$count+1}
                {/function}
        {/foreach}
    
    
    
        </ul>
    </div>
    <!-`
    
  • 4

    2 に答える 2

    0

    Smartyは(完全な)プログラミング言語ではなく、テンプレートエンジンです。意図的に許可されていないものもあります。

    目標を達成するためにプログラミングロジックを使用する必要がないように、賢く提供する小道具であるカウンターを使用する必要があります。

    割り当てには、特別なSmarty関数smartyassignを使用する必要があります。

    スマートカウンターの場合、これは機能するはずです。

    {counter start=0 skip=1 assign="count"}
    
    {foreach from=$products item=product name=products}
        {if $count == 0}
            <li style="position: relative;">
         {/if}
        <div id="ProductCon">
            <div class="prodimage">
                <a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}">
                    <img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} />
                </a>
            </div>
            <h3>
                <a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:35:'...'|escape:'htmlall':'UTF-8'}</a>
            </h3>
        </div>
        {if $count == 1}
            </li>
        {/if}
        {counter}
    {/foreach}
    
    于 2012-08-21T14:25:06.010 に答える
    0

    おそらく、foreachループでインデックス値を確認できます。これを実現する方法の例を次に示します。これはまた、リストに奇数の製品があるかどうかをチェックし、最後の製品のliタグを閉じます。お役に立てれば

    <ul>
        {foreach from=$products item=product name=products}
            {if $smarty.foreach.products.first == true || $smarty.foreach.products.index % 2 == 0}
                <li style="position: relative;">
            {/if}
                <div id="ProductCon">
                    <div class="prodimage"><a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} /></a></div>
                    <h3><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:35:'...'|escape:'htmlall':'UTF-8'}</a></h3>
                </div>
            {if $smarty.foreach.products.index % 2 == 1 || $smarty.foreach.products.last == true}
                </li>
            {/if}
        {/foreach}
    </ul>
    
    于 2012-08-21T14:27:37.827 に答える