Делаем развесистый фильтр товаров (обкатка, написание, дополнения)
#221
Отправлено 26 August 2012 - 07:58 PM
Всё работает отлично.
Есть вопрос
при добавление через CSV есть глюк.
если к примеру в характеристике есть символ ( ")
например
диаметер 2" если таких 10 товаров то и характеристика дублируеться.
У меня получилось 2" 10 вариантов
пока тестирую на локалке скрипт
#222
Отправлено 27 August 2012 - 10:16 AM
Да, есть такое дело. Но это не имеет никакого отношения к фильтру.при добавление через CSV есть глюк. если к примеру в характеристике есть символ ( ") например диаметер 2" если таких 10 товаров то и характеристика дублируеться.
В модуле импорта из CSV есть ошибка.
#223
Отправлено 28 August 2012 - 09:20 PM
В фильтре не вводиться 1-2 характиристик
Вот пример характиристик :
Диаметр разъема соединения 1
Допустимая температура жидкости до 110°C
Максимальный напор 4
Напряжение сети 220/230 В
Номинальная мощность 32 Вт
Потребляемая мощность 62 Вт
Производитель Aquatica
Пропускная способность 2.5
Размеры: 13.8x22x14.5
Тип циркуляционный
Установка насоса вертикальная
Вот сейчас не отображаеться не в одном фильтре Пропускная способность:
была проблема раньше с характиристикой Производитель.
сейчас производитель есть а Пропускная способность нету.
Причина по какой не отображалась характиристика производитель была в характиристики "вес: 5 кг"
Вроде бы странно но когда удалил "кг" характеристика производитель в филтре появилась.
сайт __http://all-pumps.kiev.ua/
#224
Отправлено 29 August 2012 - 10:15 AM
http://vsupport.club/topic/922-%D0%B4%D0%B5%D0%BB%D0%B0%D0%B5%D0%BC-%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%81%D0%B8%D1%81%D1%82%D1%8B%D0%B9-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2-%D0%BE%D0%B1%D0%BA%D0%B0%D1%82%D0%BA%D0%B0-%D0%BD%D0%B0%D0%BF/page__st__180__p__21265#entry21265сайт __http://all-pumps.kiev.ua/
PS. Задолбало писать одно и то же. Я не телепат и не гадалка, я не умею использовать кофейную гущу или карты Таро. Как я по внешнему виду сайта догадаюсь о причинах Вашей проблемы?
#225
Отправлено 25 September 2012 - 10:15 PM
Сейчас поясню, вопрос.
Есть категория, в которой перестал работать фильтр для одной из характеристик. - 11.jpg 48.16К 24 Количество загрузок: (характеристика есть, в фильтре не отображается, хотя для этой характеристика задан вывод в фильтре в виде строки для произвольного поиска. - 12.jpg 28.41К 32 Количество загрузок:
Если перенести, например, 20 товаров из этой категории в другую, там фильтр включается. - 13.jpg 41.62К 24 Количество загрузок: Если переношу 40 товаров - перестает работать.
Не пойму в чем дело, у меня в другой категории больше 300 товаров с аналогичной категорией и там фильтр работает нормально (( Но там меньшее количество значений у этой характеристики, может в этом дело?
#226
Отправлено 26 September 2012 - 08:59 AM
Да. LIMIT 1000 в advanced_search_in_category.php.а есть какое-нибудь ограничение в фильтре по количеству обрабатываемых значений характеристик?
Сначала (на всякий случай) это было LIMIT 200, потом я увеличил до тысячи, но иногда LIMIT надо убрать совсем или сделать еще на нолик-два больше. В последней версии я убрал, но врядли у Вас последняя версия. В ней никаких изменений от предпоследней кроме закомментированного LIMITа.
Не факт, что дело именно в этом, но попробуйте.
#228
Отправлено 03 October 2012 - 01:29 PM
#229
Отправлено 03 October 2012 - 07:21 PM
Думаю, достаточно прочитать первый пост темы. Не посмотреть на него, а прочитать.Устанавливаем модуль с начала поста, а после перечитываем весь пост и исправляем ошибки?
#230
Отправлено 08 October 2012 - 10:16 AM
#231
Отправлено 08 October 2012 - 11:50 AM
Видимо, разработчики выгрузки (или туннеля - я не помню уже) для ShopCMS выбрали наиболее простой путь - "товар-произвольная-характеристика", а не "товар-ссылка-на-характеристику-из-списка". Они же не могут автоматически определить, как именно будет правильно.А вот в товарах программа подставляет к характеристикам произвольные значения
Никак, если имеется в виду "выдавать список с галочками из всех имеющихся у товаров этой категории произвольных значений".Как сделать чтобы фильтр брал произвольное значение?
Если же хочется как в штатном фильтре - либо список, либо строка для ввода, то ставить галочку "Строка" в админке у этой харатеристики.
См. выше. Штатно задавалось для каждой категории отдельно, а у меня в админке для всех категорий скопом, т.к. в категории настройки фильтра нет.По моему такой принцип был у стандартного фильтра в shopcms
Проблему можно решить и с другой стороны. На shopcms.ru в разделе "Документация" (или как-то похоже) описан формат CSV-файла. Формат харатеристик "произвольной строкой" и "списком вариантов" отличается очень не сильно. Фигурными скобками, насколько я помню.
Выводите из Content Creator в CSV, редактируйте CSV и заливайте штатным способом.
#232
Отправлено 08 October 2012 - 12:58 PM
#233
Отправлено 08 October 2012 - 06:20 PM
Я уверен, что у Вас в голове есть и остальная часть сообщения, просто Вы поленились ее написать. Т.е. "по какому поводу это сказано", "про что эта фраза" или "ответом на что она является".Но произвольное значение ведь только одно, а не несколько.
Предположим, что я правильно понял ненаписанное. Что вовсе не факт .Но произвольное значение ведь только одно, а не несколько
Почему-то никого не удивляет, что при загрузке CSV-файла, где характеристики (пусть даже одна для каждого товара) заключены в фигурные скобки - вполне попадают в ВАРИАНТЫ характеристик. А если без фигурных скобок, то в ПРОИЗВОЛЬНЮ СТРОКУ.
PS. может таки прочитать описание формата CSV-файла ShopCMS на официальном сайте? Ей богу, отпадут многие вопросы.
#234
Отправлено 17 October 2012 - 04:28 PM
сайт http://matras.vn.ua/matras-matroluxe/
#235
Отправлено 17 October 2012 - 06:30 PM
#236
Отправлено 20 October 2012 - 05:08 PM
И так:
Содержимое Filtr.tpl.html.
{* С?аблон фильтра товаров *} {* шаблон фильтра товаров *} <div align="left"> <div class="fil"></div> <form name="AdvancedSearchInCategory" method="get" action="index.php" id="AdvancedSearchInCategory"> {* входные данные формы *} {* входные данные формы *} <input type='hidden' name='categoryID' value='{$categoryID}'> {if $categories_to_select} <input type='hidden' name='search_with_change_category_ability' value='yes'> {else} <input type='hidden' name='search' value='1'> {/if} <b>{$smarty.const.STRING_NAME}</b><br> <input type="text" name="search_name" style="width: 150px; margin-top: 2px;" value="{$search_name|default:""}"> <b>{$smarty.const.STRING_PRODUCT_PRICE}</b><br> {* текст 'Цена' Текст 'Цена'*} <div class="fil"></div> <script> {literal} $(function() { $("#slider").slider({ {/literal} range:true, min:{$old_search_price_from}, max:{$old_search_price_to}, values:[{$search_price_from},{$search_price_to}], step:1, {literal} slide:function(event,ui) { $("#price_from").val(ui.values[0]); $("#price_to").val(ui.values[1]); } }); {/literal} $("#price_from").val({$search_price_from}); $("#price_to").val({$search_price_to}); $("#old_price_from").val({$old_search_price_from}); $("#old_price_to").val({$old_search_price_to}); {literal} }); {/literal} </script> <div id="slider"></div> <div class="fil"></div> <table cellspacing="0" cellpadding="0" style="margin-top: 2px;"> <tr> <td valign="middle">{$smarty.const.STRING_PRICE_FROM} {* текст 'РѕС‚' *} <input name="search_price_from" type="text" id="price_from" style="width:40px"> <input name="old_search_price_from" type=hidden id="old_price_from"> {$smarty.const.STRING_PRICE_TO} {* текст 'РґРѕ' *} <input name="search_price_to" type="text" id="price_to" style="width: 40px"> {$priceUnit}</td> <input name="old_search_price_to" type=hidden id="old_price_to"> </tr> </table> <div class="fil"></div> <input type="button" value="{$smarty.const.VIEW_BUTTON}" onclick="validate_search(this); return false"> <input type="button" value="Reset All" onclick="{section name=n loop=$params} {if $params[n].controlIsTextField eq 0} document.getElementById('param_{$params[n].optionID}').checked = true; {section name=k loop=$params[n].variants} document.getElementById('par_{$params[n].optionID}_{$params[n].variants[k].variantID}').checked = false; {/section} {else} document.getElementById('param_{$params[n].optionID}').value = ''; {/if} {/section}"> {if $params} <ul id="filtr_pro" class="sample-filter"> {section name=i loop=$params} {if $params[i].filter1 eq 1} <li><a href="#"><b>{$params[i].name}</b></a> <ul> <li> {if $params[i].controlIsTextField eq 1} <input type="text" style="width: 150px;" name='param_{$params[i].optionID}' id='param_{$params[i].optionID}' value='{$params[i].set|default:""}'> {else} <label><input type="radio" name='param_{$params[i].optionID}' id='param_{$params[i].optionID}' value='0' onclick="{section name=k loop=$params[i].variants}document.getElementById('par_{$params[i].optionID}_{$params[i].variants[k].variantID}').checked = false;{/section}" {$params[i].set}>{$smarty.const.STRING_UNIMPORTANT}</label> <label><input type="radio" name='param_{$params[i].optionID}' id='all_{$params[i].optionID}' value='0' onclick="{section name=k loop=$params[i].variants}document.getElementById('par_{$params[i].optionID}_{$params[i].variants[k].variantID}').checked = true;{/section}document.getElementById('all_{$params[i].optionID}').checked = false;">Все</label><br> {section name=j loop=$params[i].variants} <label><input type="checkbox" {$params[i].variants[j].set} name='param_{$params[i].optionID}_{$smarty.section.j.index}' id='par_{$params[i].optionID}_{$params[i].variants[j].variantID}' value='{$params[i].variants[j].variantID}' onclick="document.getElementById('param_{$params[i].optionID}').checked = false;">{$params[i].variants[j].value|default:""} ({$params[i].variants[j].count})</label><br> {/section} </select> {/if} </li> </ul> {/if} {/section} </ul> {/if} {if $show_subcategory_checkbox} {if $show_subcategories_products} <input type="hidden" value='1' name='search_in_subcategory'> {else} <div class="fil"></div> <table cellspacing="0" cellpadding="0"> <tr> <td valign="middle"><input type="checkbox" class="radio" value='1' name='search_in_subcategory' {if $search_in_subcategory}checked{/if}></td> <td valign="middle"> {$smarty.const.STRING_SEARCH_IN_SUBCATEGORIES}</td> </tr> </table> {/if} {/if} <div class="fil"></div> <div class="fil"></div> <input type="button" value="{$smarty.const.VIEW_BUTTON}" onclick="validate_search(this); return false"> <input type=hidden value='1' name='advanced_search_in_category'> </form> </div> {literal} <script type="text/javascript"> $(document).ready(function() { $('ul#filtr_pro ul').each(function(i) { // Check each submenu: if ($.cookie('submenuMark-' + i)) { // If index of submenu is marked in cookies: $(this).show().prev().removeClass('collapsed').addClass('expanded'); // Show it (add apropriate classes) }else { $(this).hide().prev().removeClass('expanded').addClass('collapsed'); // Hide it } $(this).prev().addClass('collapsible').click(function() { // Attach an event listener var this_i = $('ul#filtr_pro ul').index($(this).next()); // The index of the submenu of the clicked link if ($(this).next().css('display') == 'none') { $(this).next().slideDown(200, function () { // Show submenu: $(this).prev().removeClass('collapsed').addClass('expanded'); cookieSet(this_i); }); }else { $(this).next().slideUp(200, function () { // Hide submenu: $(this).prev().removeClass('expanded').addClass('collapsed'); cookieDel(this_i); $(this).find('ul').each(function() { $(this).hide(0, cookieDel($('ul#filtr_pro ul').index($(this)))).prev().removeClass('expanded').addClass('collapsed'); }); }); } return false; // Prohibit the browser to follow the link address }); }); }); function cookieSet(index) { $.cookie('submenuMark-' + index, 'opened', {expires: null, path: '/'}); // Set mark to cookie (submenu is shown): } function cookieDel(index) { $.cookie('submenuMark-' + index, null, {expires: null, path: '/'}); // Delete mark from cookie (submenu is hidden): } </script> {/literal}
В head.tpl
<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.cookie.js"></script>В style.css
/* Filters styles */ ul.sample-filter{ padding:0;margin:0; } ul.sample-filter li { padding:2px 0;margin:0;list-style:none; } ul.sample-filter li ul { padding:0;margin:0 0 0 15px; } ul#filtr_pro a { padding-left:8px; } ul#filtr_pro a.collapsed { background:url('collapsed.gif') left 6px no-repeat; } ul#filtr_pro a.expanded { background:url('expanded.gif') left 6px no-repeat; }collapsed.gif и expanded.gif рисуйте сами ( у меня плюс и минус соответственно )
Упс, забыл закрывающий тег.
Это:
{/if} </li> </ul> {/if} {/section} </ul>Меняем на это:
{/if} </li> </ul> </li> {/if} {/section} </ul>
#237
Отправлено 20 October 2012 - 07:55 PM
Только что обратил внимание.9. в russian.php меняем "неважно" на "не важно"
Правильно: НЕВАЖНО
Пишется слитно. Это наречие, а наречие не имеет предлогов. А вот если бы в предложении имелось противопоставление, нужно было бы писать раздельно.
Пример: Расположился на скамье он не важно, а очень скромно, на краешке.
#238
Отправлено 20 October 2012 - 08:32 PM
- Важно - неважно... неважно - важно...
Ну не важно, конечно, неважно. © Алиса в стране чудес
#239
Отправлено 29 October 2012 - 03:55 PM
но поймал вот занятный глюк: при нажатии кнопки "показать" поиск работает по всему каталогу (а не по текущему разделу)... не пойму в чём может быть дело.
кто-нибудь с таким сталкивался?
#240
Отправлено 29 October 2012 - 04:45 PM
Мне сильно поможет ссылка на сайт с описанием, что нужно сделать, чтобы я увидел ошибку.при нажатии кнопки "показать" поиск работает по всему каталогу (а не по текущему разделу)