Автор Тема: Как сделать вывод товара на странице по 2-3.  (Прочитано 812 раз)

24 Июня 2014, 08:47:09
  • Фрилансер
  • *
  • Сообщений: 154
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем привет. Перечитала все сообщения на эту тему,но так и не нашла информации.
Помогите вывести не в стандартном шаблоне в категории или подкатегории товар 2-3шт в строчку (если правильно поняла,то это столбцами называются.)

{if isset($products)}
  <!-- Products list -->
  <ul id="product_list" class="clear">
    {foreach from=$products item=product name=products}
      <li class="ajax_block_product {if $smarty.foreach.products.first}first_item{elseif $smarty.foreach.products.last}last_item{/if} {if $smarty.foreach.products.index % 2}alternate_item{else}item{/if} clearfix round4">
        <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_default')|escape:'html'}" alt="{if !empty($product.legend)}{$product.legend|escape:'htmlall':'UTF-8'}{else}{$product.name|escape:'htmlall':'UTF-8'}{/if}" title="{if !empty($product.legend)}{$product.legend|escape:'htmlall':'UTF-8'}{else}{$product.name|escape:'htmlall':'UTF-8'}{/if}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} />
          {if isset($product.new) && $product.new == 1}<span class="new">{l s='New'}</span>{/if}

        {if isset($comparator_max_item) && $comparator_max_item}
          <div class="compare">
            <input type="checkbox" class="comparator" id="comparator_item_{$product.id_product}" value="comparator_item_{$product.id_product}" {if isset($compareProducts) && in_array($product.id_product, $compareProducts)}checked="checked"{/if} autocomplete="off"/>
            <label for="comparator_item_{$product.id_product}">{l s='Compare'}</label>
          </div>
        {/if}
        </a>


        <h3>{if isset($product.pack_quantity) && $product.pack_quantity}{$product.pack_quantity|intval|cat:' x '}{/if}<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>

        {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}
          <span class="on_sale round3">{l s='On sale!'}</span>
        {elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}
          <span class="discount round3">{l s='Reduced price!'}</span>
        {/if}

        {if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
          {if isset($product.online_only) && $product.online_only}<span class="online_only round3">{l s='Online only'}</span>{/if}
          {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}<span class="availability">{if ($product.allow_oosp || $product.quantity > 0)}{l s='Available'}{elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}{l s='Product available with different options'}{else}<span class="warning_inline">{l s='Out of stock'}</span>{/if}</span>{/if}
        {/if}

        <div class="product_desc"><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'}" >{$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'}</a></div>

        <div class="bottom">
          {if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2 && !$PS_CATALOG_MODE}
            {if ($product.allow_oosp || $product.quantity > 0)}
              {if isset($static_token)}
                <a class="button blue-button round3 ajax_add_to_cart_button" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart',false, NULL, "add=1&amp;id_product={$product.id_product|intval}&amp;token={$static_token}", false)|escape:'html'}" title="{l s='Add to cart'}"><div class="icon-cart-button"></div>{l s='Add to cart'}{if isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<div class="small-discount"></div>{/if}</a>
              {else}
                <a class="button blue-button round3 ajax_add_to_cart_button" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart',false, NULL, "add=1&amp;id_product={$product.id_product|intval}", false)|escape:'html'}" title="{l s='Add to cart'}"><div class="icon-cart-button"></div>{l s='Add to cart'}{if isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<div class="small-discount"></div>{/if}</a>
              {/if}
            {else}
              <span class="button blue-button round3"><div class="icon-cart-button"></div>{l s='Add to cart'}{if isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<div class="small-discount"></div>{/if}</span>
            {/if}
          {/if}         

          {if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
            {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}
              <span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>

              {if isset($product.reduction) && $product.reduction}
                <span class="price-old">{convertPrice price=$product.price_without_reduction}</span>
              {/if}
            {/if}
          {/if}
        </div>
      </li>
    {/foreach}
  </ul>
  <!-- /Products list -->
{/if}
24 Июня 2014, 09:07:41
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1010
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для категорий не видел, а для товаров на форуме есть. Нужно присвоить класс "last" c "clear:borth" последнему элементу строки.
Если нужно 3, то в цикле добавить вывод класса для "li".
{if $smarty.foreach.products.iteration == 3}"last"{/if}
24 Июня 2014, 09:21:33
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 154
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для категорий не видел, а для товаров на форуме есть. Нужно присвоить класс "last" c "clear:borth" последнему элементу строки.
Если нужно 3, то в цикле добавить вывод класса для "li".
{if $smarty.foreach.products.iteration == 3}"last"{/if}

Можно поподробней  :-[ <li class="ajax_block_product {if $smarty.foreach.products.first}first_item{elseif $smarty.foreach.products.last}last_item{/if} {if $smarty.foreach.products.index % 2}alternate_item{else}item{/if} clearfix round4"> в эту строчку вставить {if $smarty.foreach.products.iteration == 3}"last"{/if}? или куда? а в стилях ничего не надо менять?
24 Июня 2014, 16:17:27
Ответ #3
  • Фрилансер
  • *
  • Сообщений: 154
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
25 Июня 2014, 12:51:45
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 13285
  • Репутация: +14557/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В prestashop 1.6 в модуле homefeatured используется шаблон product-list.tpl
{if isset($products) && $products}
{*define numbers of product per line in other page for desktop*}
{if $page_name !='index' && $page_name !='product'}
{assign var='nbItemsPerLine' value=3}
{assign var='nbItemsPerLineTablet' value=2}
{assign var='nbItemsPerLineMobile' value=3}
{else}
{assign var='nbItemsPerLine' value=4}
{assign var='nbItemsPerLineTablet' value=3}
{assign var='nbItemsPerLineMobile' value=2}
{/if}
Если нужно изменить кол-во товаров в ряду, поменяйте значения в
{assign var='nbItemsPerLine' value=4}
{assign var='nbItemsPerLineTablet' value=3}
{assign var='nbItemsPerLineMobile' value=2}
и измените стили для этих элементов.