Бренды в Webasyst Shop-Script

8
Не нравитсяНравится (+5 rating, 1 votes)
Loading ... Loading ...

Готовы два решения «Бренды» и «Фильтры»

Сначала о первом. Может это решение не самое лучшее и не универсальное, но сделать это можно стандартными средствами скрипта Webasyst Shop-Script

1. Создаем категория товаров Бренды (производители, поставщики и т.д.)  и запоминаем ее ID

Каждый бренд – это подкатегория категории Бренды.
При создании Бренда (как и в любой категории) можно загрузить логотип, написать описание.

Теперь при создании товара в обычной категории на вкладке «Дополнительно»  в строке «Дополнительные родительские категории» нажимаем «Добавить» и выбираем категорию нужного нам Бренда.

2. Скрываем категорию Бренды в дереве каталога и на главной странице:

в файле /published/SC/html/scripts/templates/frontend/category_tree.html

код

{section name=i loop=$categories_tree}  {if $categories_tree[i].categoryID != 1}

меняем на

{section name=i loop=$categories_tree}  {if $categories_tree[i].categoryID != 1 && $categories_tree[i].categoryID != 558}

где 558 – ID категории Бренды

в файле /published/SC/html/scripts/templates/frontend/root_categories.html

код

{foreach from=$root_categories item=_cat name=_fr}

меняем на

{foreach from=$root_categories item=_cat name=_fr}{if $_cat.categoryID!=558}

где 558 – ID категории Бренды

в этом же файле внизу перед последним {/foreach}
добавляем {/if}
то есть получится

{/if}{/foreach}

Для удобства поиска можно дублировать имя бренда в поле Тэг. И тогда можно в сайдбаре вывести «фильтр» по брендам в этой категории.

Плагин собирает теги(в нашем случае бренды) всех товаров этой категории и выводит их в виде списка ссылок. При нажатии на ссылку, пользователь видит все товары с этим тэгом.

Листинг плагина function.brands.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;
 
}
 
?>

Вызывать его нужно так {brands type=’menu’}
Еще один способ: вместо тегов сделать доп. характеристику и фильтр. Тогда будет фильтровать по бренду внутри категории.
Про фильтры напишу через пару дней. Тоже буде готовое решение.

8 Комментариев

  1. RuselNo Gravatar:

    Здравствуйте, все сделал, как описано выше, но категория Бренды все равно не отображается… :( Помогите пожалуйста

  2. vkontakte.ru АртемNo Gravatar:

    Где именно не показываются?
    В категории у вас должен быть вывод тегов.
    А ссылку на сами бренды вам все равно придется делать еще одним плагином, но запросы там не сложные

  3. АлександрNo Gravatar:

    а где сохранить этот function.brands.php ?
    тут – published\SC\html\scripts\core_functions\ ?

  4. ФедорNo Gravatar:

    Привет, а решение по фильтрам ты не публиковал ещё ?

  5. vkontakte.ru АртемNo Gravatar:

    еще нет. постараюсь в течении недели. там просто решение

  6. alexNo Gravatar:

    {brands type=’menu’} где это прописывать?

Оставить комментарий


WebComplIT banner
© 2008-2010 EasyWeb.org.ua. All rights reserved.