Вывод всех товаров категории на странице товара. Simpla.

Вывод всех товаров категории на странице товара. Simpla.

открываем view/View.php регистрируем функцию:

$this->design->smarty->registerPlugin("function", "get_products", array($this, 'get_products_plugin'));
public function get_products_plugin($params, &$smarty)
     {
          if(!empty($params['var']))
          {
               foreach($this->products->get_products($params) as $p)
                    $products[$p->id] = $p;

               if(!empty($products))
               {
                    // id выбраных товаров
                    $products_ids = array_keys($products);

                    // Выбираем варианты товаров
                    $variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true));

                    // Для каждого варианта
                    foreach($variants as &$variant)
                    {
                         // добавляем вариант в соответствующий товар
                         $products[$variant->product_id]->variants[] = $variant;
                    }

                    // Выбираем изображения товаров
                    $images = $this->products->get_images(array('product_id'=>$products_ids));
                    foreach($images as $image)
                         $products[$image->product_id]->images[] = $image;

                    foreach($products as &$product)
                    {
                         if(isset($product->variants[]))
                              $product->variant = $product->variants[];
                         if(isset($product->images[]))
                              $product->image = $product->images[];
                    }
               }

               $smarty->assign($params['var'], $products);

          }
     }

открываем design/…/html/product.tpl

Читайте также  Очень крутая кнопка для follow

вызываем нашу функцию и выводим в шаблон товары

{* Товары категории *}
{get_products var=category_products category_id=$category->id limit=100}
{if $category_products}
<h2>Другие товары категории {$category-&gt;name|escape}</h2>
<!-- Список товаров-->
<ul class="tiny_products">
<ul class="tiny_products">{foreach $category_products as $cproduct} <!-- Товар--></ul>
</ul>
&nbsp;
<ul class="tiny_products">
<ul class="tiny_products">
     <li class="product"><!-- Фото товара --> {if $cproduct-&gt;image}
<div class="image"><a href="products/{$cproduct-&gt;url}"><img src="{$cproduct-&gt;image-&gt;filename|resize:200:200}" alt="&quot;{$cproduct-" />name|escape}"/&gt;</a></div>
{/if} <!-- Фото товара (The End) --> <!-- Название товара -->
<h3><a href="
products/{$cproduct-&gt;url}" data-product="{$cproduct-&gt;id}">{$cproduct-&gt;name|escape}</a></h3>
<!-- Название товара (The End) --> {if $cproduct-&gt;variants|count &gt; 0} <!-- Выбор варианта товара -->

<form class="
variants" action="/cart">
{foreach $cproduct-&gt;variants as $v} {if $v-&gt;name}<label class="
variant_name" for="new_{$v-&gt;id}">{$v-&gt;name}</label>{/if} {if $v-&gt;compare_price &gt; 0}<span class="compare_price">{$v-&gt;compare_price|convert}</span>{/if} <span class="price">{$v-&gt;price|convert} <span class="currency">{$currency-&gt;sign|escape}</span></span>   {/foreach}
<table>
<tbody>
<tr class="
variant">
<td><input id="
new_{$v-&gt;id}" class="variant_radiobutton" checked="checked" name="variant" type="radio" value="{$v-&gt;id}" />variants|count&lt;2}style="display:none;"{/if}/&gt;</td>
</tr>
</tbody>
</table>
<input class="
button" type="submit" value="в корзину" data-result-text="добавлено" />

</form><!-- Выбор варианта товара (The End) --> {else} Нет в наличии {/if}</li>
</ul>
</ul>
<!-- Товар (The End)--> {/foreach}

{/if}
Несколько полезностей для Simpla 2.x... Переносим выбор варианта оплаты на первую страницу оформления заказа Автоматически создаваемый артикул как ID товара Выбор количества товара перед п...
Количество товара перед помещением в корзину. Simp... В шаблоны добавляем: шт. Для добавления Ajax обновления корзины заменяем в файле /js/ajax-cart.js data: {variant: variant}, на data: {v...
CSS Styling Radio Button and Checkboxes The idea is simple. We want to change the look and feel of existing radio buttons into more of a push button. The above image pretty much t...
Simpla валюта через select {if $currencies|count>1} {foreach from=$currencies item=c} {if $c->enabled} id==$currency->id} selected="selected"{/if}>{$c->name|esca...

Сохрани, чтобы не потерять