Konsyltant
Писатель
- Регистрация
- 23 Мар 2009
- Сообщения
- 4
- Реакции
- 3
Бренды в Webasyst Shop-Script
Готовы два решения «Бренды» и «Фильтры»
Сначала о первом. Может это решение не самое лучшее и не универсальное, но сделать это можно стандартными средствами скрипта Webasyst Shop-Script
1. Создаем категория товаров Бренды (производители, поставщики и т.д.) и запоминаем ее ID
Каждый бренд – это подкатегория категории Бренды.
При создании Бренда (как и в любой категории) можно загрузить логотип, написать описание.
Теперь при создании товара в обычной категории на вкладке «Дополнительно» в строке «Дополнительные родительские категории» нажимаем «Добавить» и выбираем категорию нужного нам Бренда.
2. Скрываем категорию Бренды в дереве каталога и на главной странице:
в файле /published/SC/html/scripts/templates/frontend/category_tree.html
код
меняем на
где 558 – ID категории Бренды
в файле /published/SC/html/scripts/templates/frontend/root_categories.html
код
{
меняем на
где 558 – ID категории Бренды
в этом же файле внизу перед последним {/foreach}
добавляем {/if}
то есть получится
{/if}{/foreach}
Для удобства поиска можно дублировать имя бренда в поле Тэг. И тогда можно в сайдбаре вывести “фильтр” по брендам в этой категории.
Плагин собирает теги(в нашем случае бренды) всех товаров этой категории и выводит их в виде списка ссылок. При нажатии на ссылку, пользователь видит все товары с этим тэгом.
Листинг плагина function.brands.php
Вызывать его нужно так {brands type='menu'}
Еще один способ: вместо тегов сделать доп. характеристику и фильтр. Тогда будет фильтровать по бренду внутри категории.
Про фильтры напишу через пару дней. Тоже буде готовое решение.
Готовы два решения «Бренды» и «Фильтры»
Сначала о первом. Может это решение не самое лучшее и не универсальное, но сделать это можно стандартными средствами скрипта Webasyst Shop-Script
1. Создаем категория товаров Бренды (производители, поставщики и т.д.) и запоминаем ее ID
Каждый бренд – это подкатегория категории Бренды.
При создании Бренда (как и в любой категории) можно загрузить логотип, написать описание.
Теперь при создании товара в обычной категории на вкладке «Дополнительно» в строке «Дополнительные родительские категории» нажимаем «Добавить» и выбираем категорию нужного нам Бренда.
2. Скрываем категорию Бренды в дереве каталога и на главной странице:
в файле /published/SC/html/scripts/templates/frontend/category_tree.html
код
HTML:
{section name=i loop=$categories_tree} {if $categories_tree[i].categoryID != 1}
HTML:
{section name=i loop=$categories_tree} {if $categories_tree[i].categoryID != 1 && $categories_tree[i].categoryID != 558}
в файле /published/SC/html/scripts/templates/frontend/root_categories.html
код
{
HTML:
foreach from=$root_categories item=_cat name=_fr}
HTML:
{foreach from=$root_categories item=_cat name=_fr}{if $_cat.categoryID!=558}
в этом же файле внизу перед последним {/foreach}
добавляем {/if}
то есть получится
{/if}{/foreach}
Для удобства поиска можно дублировать имя бренда в поле Тэг. И тогда можно в сайдбаре вывести “фильтр” по брендам в этой категории.
Плагин собирает теги(в нашем случае бренды) всех товаров этой категории и выводит их в виде списка ссылок. При нажатии на ссылку, пользователь видит все товары с этим тэгом.
Листинг плагина function.brands.php
PHP:
<?php
function smarty_function_brands( $params, &$smarty )
{
$disp='';
if($params['type']=='menu'){
if($_GET['categoryID'] && $_GET['categoryID']!=1){
$where=' WHERE categoryID='.$_GET['categoryID'];
} else {
$where='';
}
$sql='SELECT tag_id FROM SC_tagged_objects WHERE object_type="product" AND language_id=1 AND object_id IN
(SELECT productID FROM SC_products '.$where.' )';
//echo $sql;
if($r=mysql_query($sql)){
$sql2='SELECT DISTINCT(name) FROM SC_tags WHERE id IN(';
$i=0;
while($res=mysql_fetch_assoc($r)){
if($i!=0) $sql2.=',';
$sql2.=$res['tag_id'];
$i++;
}
$sql2.=')';
//echo $sql2;
if($r2=mysql_query($sql2)){
$disp.='<div class="side_box">
<h2>Бренды</h2>
<ul class="smenu">';
while($res2=mysql_fetch_assoc($r2)){
$disp.='<li><a href="/search/?searchstring='.$res2['name'].'">'.$res2['name'].'</a></li>';
}
$disp.='</ul></div>';
}
}
}
return $disp;
}
?>
Еще один способ: вместо тегов сделать доп. характеристику и фильтр. Тогда будет фильтровать по бренду внутри категории.
Про фильтры напишу через пару дней. Тоже буде готовое решение.