Бренды в Webasyst Shop-Script
Готовы два решения «Бренды» и «Фильтры»
Сначала о первом. Может это решение не самое лучшее и не универсальное, но сделать это можно стандартными средствами скрипта 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’}
Еще один способ: вместо тегов сделать доп. характеристику и фильтр. Тогда будет фильтровать по бренду внутри категории.
Про фильтры напишу через пару дней. Тоже буде готовое решение.


Здравствуйте, все сделал, как описано выше, но категория Бренды все равно не отображается…
Помогите пожалуйста
Где именно не показываются?
В категории у вас должен быть вывод тегов.
А ссылку на сами бренды вам все равно придется делать еще одним плагином, но запросы там не сложные
а где сохранить этот function.brands.php ?
тут — published\SC\html\scripts\core_functions\ ?
/kernel/includes/smarty/plugins
Привет, а решение по фильтрам ты не публиковал ещё ?
еще нет. постараюсь в течении недели. там просто решение
{brands type=’menu’} где это прописывать?
Туда, где вы хотите отобразить список брендов
в html в любом месте где бы ни поставил {brands type=’menu’}… так и выводится — {brands type=’menu’}
А ты можешь мне помочь с вебасистом за отдельную плату?)
могу
обращайтесь на почту http://easyweb.org.ua/feedback/
Вот эту строчку в category_tree.html:
{section name=i loop=$categories_tree} {if $categories_tree[i].categoryID != 1 && $categories_tree[i].categoryID != 558}
Лучше записать (когда у нас одновременно испольуется и отдельное меню категорий и меню брендов):
{section name=i loop=$categories_tree} {if $categories_tree[i].categoryID != 1 && $categories_tree[i].categoryID != 558 && $categories_tree[i].parent != 558}
Где 558 — ID брендовой категории.
Здравствуйте. Я сделал как тут написано, но ничего не получилось. Ничего не выводит
с таким описанием проблемы сложно чем-то помочь
ну и решение это не «под ключ», а скорее заготовка
скоро (надеюсь скоро) будет новое решение брендов
В каком файле прописывать строку {brands type=’menu’}
Где именно Вы прописывали, для того что-бы работало ?
Прописывать нужно там, где вы хотите видеть меню брендов
Я это понимаю.В каком файле это делать ?
Вопрос проще: В каком файле Вы прописывали эту строку ?
В редакторе дизайна через админку
в режиме редактирования html
Спасибо ОГРОМНОЕ! все понятно и работает.
категории вывел картинками в левой колонке
VintiK не могли бы Вы подробнее описать как вывели категории картинками
Если кто реализовал вывод брендов логотипами,помогите пожайлуста…Выложите здесь,плиз…
Ничего не заработало! Все несколько раз перепроверил по вашей статье, не помогло! Может это как заготовка и подсказка для программистов… но если делать все по вашей инструкции, то не работает! Приложите хотя бы ваши файлы, которые вы заменили или изменили. Опишите в какой версии пробовали, может еще что то нужно для работы данного плагина, но забыли указать!
да. это заготовка
решение «под ключ» скоро возможно появится. точную дату не назову
Блин! Указали бы что работать эта *Заготовка* не будет!
Чего людям голову морочить то!
забыл у вас спросить как писать сообщения в своем блоге.
в следующий раз обязательно спрошу
ну и тем, кто немного в этом разбирается данная публикация помогла.
так что удачи вам и всего доброго
Здравствуйте, Артем. Могли бы вы сказать, как составить плагин для отображения брендов? Вы сказали, что запросы там не сложные, но для меня и они сложны
Чтобы было как с фильтром {brands type=’menu’}. Я на главную страницу повесить хочу.
Я так понимаю, что нужно фактически скопировать содержимое файлов root_categories.html category_tree.html где наоборот убрать все категории, кроме категории брендов. Т.е. мне нужно фактически создать ещё одно меню на главной странице.
Логика верная? Если да, то как это технически сделать?.. Плиз, подскажите решение.
Работает отлично (ограничение вывода категорий), но есть большой недостаток — вывод на главной сбивается — исключенные категории остаются пустыми блоками.
{if $smarty.foreach._fr.index%$columnCount ==0}{/if}
Как ты реализовал вывод на главную, подскажи, пожалуйста.
Он по умолчанию на главной или в дизайне «Развернутый список категорий»
я в курсе. я имею в виду вынести эту категорию в отдельное меню.
est obrazets???
в какой таблице находятся Дополнительные родительские категории?
SC_category_product
это написано в руководстве http://easyweb.org.ua/shop-script/manual4/
Здравствуйте, Артем. Спасибо за модуль. Скажите, пожалуйста, если меняешь вид вывода дерева категорий, как в этой статье http://easyweb.org.ua/shop-script/my-category-tree/ пунк 1., какие строчки изменить, чтобы не скрыть категорию с брендами в дереве? Изменения нужно производить в function.newtree.php?
Опечатка — «чтобы НЕ скрыть категорию с брендами в дереве», чтобы скрыть категорию
в первой функции сразу после
while($res=mysql_fetch_assoc($r)){можно вставить
if($res['categoryID'] == 777) continue;777 — ID вашей категории с брендами
Артем, спасибо за быстрый ответ. Категория скрылась. А вывести блок с брендами не получается ни на главной, ни на странице с категориями. Просто пусто. Есть какое-то решение.
P.s. Вы занимаетесь доработкой для shop-script. Интересует модуль-фильтр по параметрам товара Куда вам можно написать?
занимаюсь, но в ближайшее время буду занят
написать можно через форму обратной связи http://easyweb.org.ua/feedback/