[Помощь] Вывод товаров в списке по 4 в строку

Тема в разделе "WebAsyst", создана пользователем vicsk, 19 июн 2012.

Статус темы:
Закрыта.
Модераторы: mdss
  1. vicsk

    vicsk Постоялец

    Регистр.:
    19 янв 2010
    Сообщения:
    147
    Симпатии:
    8
    Мне нужно вывести в списке по 4 товара в строку, как это можно сделать?
    Вот мой код:
    Код:
    <ul class="product_list">
    {foreach from=$__products item=_product}
    {if $_product.slug}
    {assign var=_product_url value="?productID=`$_product.productID`&product_slug=`$_product.slug`"|set_query_html}
    {else}
    {assign var=_product_url value="?productID=`$_product.productID`"|set_query_html}
    {/if}
    <li class="prod-brief">
    <table width="190">
      <tr>
        <td class="prod-name-list"><a href="{$_product_url}">{$_product.name|truncate:38:'...':true}</a></td>
      </tr>
      <tr>
        <td class="prod-thumb-list" align="center">
        {if $_product.thumbnail}<a href="{$_product_url}"><img src="{$smarty.const.URL_PRODUCTS_PICTURES}/{$_product.thumbnail|escape:'url'}" alt="{$_product.name|escape:'html'}"></a>
        {else}
        <img src="{$URL_THEME_OFFSET}/img/no_photo.jpg" alt="{$product_info.name|escape:'html'}" title="{$product_info.name|escape:'html'}">
        {/if}
        </td>
      </tr>
      <tr>
        <td class="add2cart-list" align="center">
        {if $_product.ordering_available && $_product.Price>0 && ( $smarty.const.CONF_SHOW_ADD2CART eq 1 ) && ( $smarty.const.CONF_CHECKSTOCK==0 || $_product.in_stock > 0 ) }
        <form class="frmclass" action='{"?ukey=cart`$_form_action_url`"|set_query_html}' method="post" rel="{$_product.productID}" {if $widget}onclick="this.target=\'target\'"{/if} >
        <input name="action" value="add_product" type="hidden" />
        <input name="productID" value="{$_product.productID}" type="hidden" / >
        <input name='add2cart' type="image" src="{$URL_THEME_OFFSET}/img/add2cart.png" alt="{"str_add_to_cart_string"|translate}" title="{"str_add_to_cart_string"|translate}">
        </form>
        {elseif $smarty.const.CONF_SHOW_ADD2CART eq 1 && $smarty.const.CONF_CHECKSTOCK && !$_product.in_stock && $_product.ordering_available}
        <img src="{$URL_THEME_OFFSET}/img/out.png" alt="{lbl_prd_out_of_stock}" />
        {/if}
        </td>
      </tr>
    </table>
    </li>
    {/foreach}
    </ul>
     
  2. kadurinho

    kadurinho

    Регистр.:
    21 июн 2011
    Сообщения:
    601
    Симпатии:
    242
    Верстка какая? Резиновая или фиксированная? Если фикс - увеличивать это значение <table width="190"> до того момента пока не опустится 5 товар на новую строку. Если резина. пробовать подставлять в значение не пиксели а %. Хотя лучше делать ширину элемента для тега <li>
     
  3. vicsk

    vicsk Постоялец

    Регистр.:
    19 янв 2010
    Сообщения:
    147
    Симпатии:
    8
    Такие варианты не подходят, нужно примерно так, как тут для рекомендуемых:
    Код:
    {section name=i loop=$product_related}
    {if $smarty.section.i.index is div by 4}<tr>{/if}
                <td align="center">
                {if $product_related[i].pictures.default.thumbnail}
                <a href='{"?productID=`$product_related[i].productID`&product_slug=`$product_related[i].slug`"|set_query_html}'>
                <img border="0" src="{$smarty.const.URL_PRODUCTS_PICTURES}/{$product_related[i].pictures.default.thumbnail|escape:'url'}" />
                </a>
                {/if}
                <br />
                <a href='{"?productID=`$product_related[i].productID`&product_slug=`$product_related[i].slug`"|set_query_html}'>
                {$product_related[i][1]}
                </a>
                <nobr>&nbsp;<font color=brown>{$product_related[i][2]}</font></nobr>
                </td>
    {if ($smarty.section.i.index + 1) is div by 4}</tr>{/if}
    {/section}
    
     
  4. vicsk

    vicsk Постоялец

    Регистр.:
    19 янв 2010
    Сообщения:
    147
    Симпатии:
    8
    Вот решение:
    Код:
    <table width="190">
      <tr>
        <td class="prod-name-list"><a href="{$_product_url}">{$_product.name|truncate:38:'...':true}</a></td>
      </tr>
      <tr>
        <td class="prod-thumb-list" align="center">
        <div class="prod-label">{measure_unit}</div>
        {if $_product.thumbnail}<a href="{$_product_url}"><img src="{$smarty.const.URL_PRODUCTS_PICTURES}/{$_product.thumbnail|escape:'url'}" alt="{$_product.name|escape:'html'}"></a>
        {else}
        <img src="{$URL_THEME_OFFSET}/img/no_photo.jpg" alt="{$product_info.name|escape:'html'}" title="{$product_info.name|escape:'html'}">
        {/if}
        </td>
      </tr>
      <tr>
        <td class="prod-list-price" align="center">
        <div class="border"></div>
        {if $_product.Price}
        <div class="prdbrief_price">
            <span class="totalPrice">{$_product.price_str}</span>
        </div>
        {/if}
        </td>
      </tr>
      <tr>
        <td class="add2cart-list" align="center" style="padding-bottom:10px">
        <form class="frmclass" action='{"?ukey=cart`$_form_action_url`"|set_query_html}' method="post" rel="{$_product.productID}" {if $widget}onclick="this.target=\'target\'"{/if} >
        <input name="action" value="add_product" type="hidden" />
        <input name="productID" value="{$_product.productID}" type="hidden" / >
        {if $_product.in_stock > 0 }
        <b>В наличии</b> 
        <input name='add2cart' type="image" src="{$URL_THEME_OFFSET}/img/add2cart.png" alt="{"str_add_to_cart_string"|translate}" title="{"str_add_to_cart_string"|translate}"> 
        {else}
        <b>Доступен под заказ</b>
        <input name='add2cart' type="image" src="{$URL_THEME_OFFSET}/img/order.png" alt="Заказать товар" title="Заказать товар">
        {/if}
        </form> 
        </td>
      </tr>
    </table>
     
Статус темы:
Закрыта.