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

Статус
В этой теме нельзя размещать новые ответы.

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>
 
Верстка какая? Резиновая или фиксированная? Если фикс - увеличивать это значение <table width="190"> до того момента пока не опустится 5 товар на новую строку. Если резина. пробовать подставлять в значение не пиксели а %. Хотя лучше делать ширину элемента для тега <li>
 
Такие варианты не подходят, нужно примерно так, как тут для рекомендуемых:
Код:
{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 товара в строку, как это можно сделать?
Вот мой код:
Код:
<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>
Вот решение:
Код:
<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>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху