открываем 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[0]))
$product->variant = $product->variants[0];
if(isset($product->images[0]))
$product->image = $product->images[0];
}
}
$smarty->assign($params['var'], $products);
}
}
открываем design/.../html/product.tpl
вызываем нашу функцию и выводим в шаблон товары
{* Товары категории *}
{get_products var=category_products category_id=$category->id limit=100}
{if $category_products}
<h2>Другие товары категории {$category->name|escape}</h2>
<!-- Список товаров-->
<ul class="tiny_products">
{foreach $category_products as $cproduct}
<!-- Товар-->
<li class="product">
<!-- Фото товара -->
{if $cproduct->image}
<div class="image">
<a href="products/{$cproduct->url}"><img src="{$cproduct->image->filename|resize:200:200}" alt="{$cproduct->name|escape}"/></a>
</div>
{/if}
<!-- Фото товара (The End) -->
<!-- Название товара -->
<h3><a data-product="{$cproduct->id}" href="products/{$cproduct->url}">{$cproduct->name|escape}</a></h3>
<!-- Название товара (The End) -->
{if $cproduct->variants|count > 0}
<!-- Выбор варианта товара -->
<form class="variants" action="/cart">
<table>
{foreach $cproduct->variants as $v}
<tr class="variant">
<td>
<input id="new_{$v->id}" name="variant" value="{$v->id}" type="radio" class="variant_radiobutton" {if $v@first}checked{/if} {if $product->variants|count<2}style="display:none;"{/if}/>
</td>
<td>
{if $v->name}<label class="variant_name" for="new_{$v->id}">{$v->name}</label>{/if}
</td>
<td>
{if $v->compare_price > 0}<span class="compare_price">{$v->compare_price|convert}</span>{/if}
<span class="price">{$v->price|convert} <span class="currency">{$currency->sign|escape}</span></span>
</td>
</tr>
{/foreach}
</table>
<input type="submit" class="button" value="в корзину" data-result-text="добавлено"/>
</form>
<!-- Выбор варианта товара (The End) -->
{else}
Нет в наличии
{/if}
</li>
<!-- Товар (The End)-->
{/foreach}
</ul>
{/if}