Перейти к содержимому


Правила форума

Внимание!!! Если не можете скачать, пожалуйста ознакомьтесь с условиями получения доступа с файлам форума. Правила форума


Еще один фильтр. Теперь на AJAX.


Сообщений в теме: 185

#41 1baddog1

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 45 сообщений
Репутация: 1
Начинающий

Отправлено 07 августа 2014 - 11:33

перечитал ещё раз описание модуля, и понял что у меня характеристики заданны в виде текстовых полей. Подскажите может есть другой фильтр где он будет работать с текстовыми полями характеристик.
Возможно добавить ползунок по характеристикам где в текстовых полях указаны цифры?

#42 badisoft

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 5 072 сообщений
Репутация: 783
Мастер

Отправлено 07 августа 2014 - 11:35

Просмотр сообщения1baddog1 сказал:

Но почему-то только ползунок с ценой появился, а остальных характеристик нет. С чем это может быть связано?
Например, с этим:
==============
- Как и предыдущий этот фильтр работает ТОЛЬКО с характеристиками товаров, заданными в виде вариантов характеристик. Т.е. с характеристиками в виде текстовой строки этот фильтр НЕ РАБОТАЕТ.
==============
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#43 1baddog1

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 45 сообщений
Репутация: 1
Начинающий

Отправлено 07 августа 2014 - 12:02

Просмотр сообщенияbadisoft (07 августа 2014 - 11:35) писал:

Просмотр сообщения1baddog1 сказал:

Но почему-то только ползунок с ценой появился, а остальных характеристик нет. С чем это может быть связано?
Например, с этим:
==============
- Как и предыдущий этот фильтр работает ТОЛЬКО с характеристиками товаров, заданными в виде вариантов характеристик. Т.е. с характеристиками в виде текстовой строки этот фильтр НЕ РАБОТАЕТ.
==============

Возможно добавить ползунок по характеристикам где в текстовых полях указаны цифры?

Подскажите ещё пожалуйста, если использовать "возможные значения" для отображения этих характеристик в фильтре. То как можно сделать, чтобы при "детальном" просмотре товара, чтобы возможно значения были не в виде селекта, а чтобы вообще было скрыто или же возможные значения были б перечислены через запятую?

Нашёл конвертер(ваша разработка-спасибо=))) из текстовых в возможные значения.
но как сделать чтобы не было селекта?

#44 badisoft

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 5 072 сообщений
Репутация: 783
Мастер

Отправлено 07 августа 2014 - 13:00

Просмотр сообщения1baddog1 сказал:

но как сделать чтобы не было селекта?
1. задавать товару ОДНО возможное значение. При одном значении селекта нет, насколько я помню, а просто строка.
2. заменить в шаблоне селект на что-либо другое. Например, на список этих значений.
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#45 1baddog1

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 45 сообщений
Репутация: 1
Начинающий

Отправлено 07 августа 2014 - 13:08

Просмотр сообщенияbadisoft (07 августа 2014 - 13:00) писал:

Просмотр сообщения1baddog1 сказал:

но как сделать чтобы не было селекта?
1. задавать товару ОДНО возможное значение. При одном значении селекта нет, насколько я помню, а просто строка.
2. заменить в шаблоне селект на что-либо другое. Например, на список этих значений.

1. даже если одно, всеравно селект (
2. можете написать как? Пытался найти на форуме, подобные темы поднимались, но в итоге решения не нашёл.

В product_detailed.tpl.html нашёл кусок кода, подскажите пожалуйста, на что тут нужно изменить.
<form action="index.php?productID={$product_info.productID}" method=post name="MainForm">
			  {counter name='select_counter' start=0 skip=1 print=false assign='select_counter_var'}
			  {section name=i loop=$product_extra}
			  {if $product_extra[i].option_type eq 0 }
			  {$product_extra[i].name}: <b>{$product_extra[i].option_value}</b><br>
			  {else}
			  {counter name='option_show_times' start=0 skip=1 print=false}
			  {section name=k loop=$product_extra[i].option_show_times}
			  {$product_extra[i].name}{if $product_extra[i].option_show_times > 1 }
			  ({counter name=option_show_times}):{else}:{/if}
			  {counter name=select_counter}
			  {if $product_extra[i].values_to_select_count == 1} <b>{$product_extra[i].values_to_select[0].option_value}</b><br>
			  <input type="hidden" name="option_select_{$select_counter_var}" value='{$product_extra[i].values_to_select[0].price_surplus}:{$product_extra[i].values_to_select[0].variantID}'>
			  {else}
			  {if $smarty.section.k.index == 0}
			  <select name='option_select_{$select_counter_var}' onchange='GetCurrentCurrency();' class="WCHhider">
			   
				  {section name=j loop=$product_extra[i].values_to_select}
				 
			    <option value='{$product_extra[i].values_to_select[j].price_surplus}:{$product_extra[i].values_to_select[j].variantID}' {if $product_extra[i].values_to_select[j].variantID eq $product_extra[i].variantID}selected{/if}>{$product_extra[i].values_to_select[j].option_value}</option>
			   
				  {/section}
			  </select>
			  <br>
			  {else}
			  <select name='option_select_{$select_counter_var}' onchange='GetCurrentCurrency();' class="WCHhider">
			    <option value='0:-1'>{$smarty.const.NOT_DEFINED}</option>
			   
				  {section name=j loop=$product_extra[i].values_to_select}
				 
			    <option value='{$product_extra[i].values_to_select[j].price_surplus}:{$product_extra[i].values_to_select[j].variantID}'>{$product_extra[i].values_to_select[j].option_value}</option>
			   
				  {/section}
			  </select>
			  <br>
			  {/if}
			  {/if}
			  {/section}
			  {/if}
			  {/section}
			  {if $select_counter_var != 0}
			  <input type=hidden value="{php}echo(getPriceUnit());{/php}" name="priceUnit">
			  {/if}
		    </form>


Возможно добавить ползунок по характеристикам где в текстовых полях указаны цифры?

#46 badisoft

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 5 072 сообщений
Репутация: 783
Мастер

Отправлено 07 августа 2014 - 14:11

Просмотр сообщения1baddog1 сказал:

1. даже если одно, всеравно селект (
Не рассказывайте сказки. Вы сами выложили этот код:
{if $product_extra[i].values_to_select_count == 1}
<b>{$product_extra[i].values_to_select[0].option_value}</b><br>
<input type="hidden" name="option_select_{$select_counter_var}" value='{$product_extra[i].values_to_select[0].price_surplus}:{$product_extra[i].values_to_select[0].variantID}'>
{else}
...

Цитата

Возможно добавить ползунок по характеристикам где в текстовых полях указаны цифры?
Да, конечно. За деньги вообще очень многое возможно :).
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#47 1baddog1

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 45 сообщений
Репутация: 1
Начинающий

Отправлено 07 августа 2014 - 14:22

Просмотр сообщенияbadisoft (07 августа 2014 - 14:11) писал:

Просмотр сообщения1baddog1 сказал:

1. даже если одно, всеравно селект (
Не рассказывайте сказки. Вы сами выложили этот код:
{if $product_extra[i].values_to_select_count == 1}
<b>{$product_extra[i].values_to_select[0].option_value}</b><br>
<input type="hidden" name="option_select_{$select_counter_var}" value='{$product_extra[i].values_to_select[0].price_surplus}:{$product_extra[i].values_to_select[0].variantID}'>
{else}
...

Цитата

Возможно добавить ползунок по характеристикам где в текстовых полях указаны цифры?
Да, конечно. За деньги вообще очень многое возможно :).

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

#48 badisoft

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 5 072 сообщений
Репутация: 783
Мастер

Отправлено 07 августа 2014 - 14:52

Просмотр сообщения1baddog1 сказал:

Подскажите, что нужно поправить, чтобы если более двух возможных значений, то выводилось бы через запятую.
Поправить нужно HTML-код в приведенном Вам куске между {else} и {/if}.
http://htmlbook.ru/
http://www.smarty.net/docsv2/ru/
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#49 VerstkaShopcms

    Пользователь

  • Download User
  • PipPip
  • 20 сообщений
Репутация: 4
Начинающий

Отправлено 10 ноября 2014 - 18:30

Вопрос к разработчику. Возможно я не очень внимательно читал (однако пролистал туда сюда пару раз эту ветку), однако задам вопрос. Данный фильтр он как автономное решение или это как адд-он к фильтру предыдущего варианта без аякса? Этого

Другими словами для того чтобы он заработал нужно сначала установить фильтр предыдущей редакции автора и затем подлить файлы от фильтра с аякс?

У меня не получается его заставить работать. На дефолтном движке магазине (с дефолтными папками includes и functions) не выбирает ничего. На варианте магазина на котором был установлен развесистый фильтр без аякса - выводится выборка характеристик, однако не выводятся мин и макс цены. Соответственно фильтр не работает. Выводит постоянно что нет товаров. И при этом пропадают характеристики.

И еще вопрос. Этот фильтр задумывался для поиска по всему сайту или по конкретной категории? Или для того и другого варианта?

#50 badisoft

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 5 072 сообщений
Репутация: 783
Мастер

Отправлено 10 ноября 2014 - 19:19

Цитата

Данный фильтр он как автономное решение или это как адд-он к фильтру предыдущего варианта без аякса?
Нет. Этот фильтр не требует предварительной установки каких-либо модулей.

Цитата

У меня не получается его заставить работать
Это странно. Он ставится намного проще, чем "Развесистый фильтр".
И пока мне встретился всего один сайт, где бы он сходу не работал, да и то частично.
Причем разбирался в причине я относительно долго, но причина оказалась банальной.
Кстати, я всегда открыт для коммерческой установки модуля :).

Цитата

И еще вопрос. Этот фильтр задумывался для поиска по всему сайту или по конкретной категории? Или для того и другого варианта?
Если находимся в категории, то он ищет в текущей и дочерних категориях. Соответственно, и параметры выбора дает только те, которые есть в этих категориях. Если не в категории, то, естественно, по всем товарам. Вам никто не мешает зайти на тестовый сайт в подписи и посмотреть, как фильтр работает.

PS. Как ни странно (ведь это есть в описании фильтра), но подавляющее большинство проблем "у меня не работает" связано с тем, что пытающиеся установить этот фильтр не понимают отличия характеристик типа "произвольная строка" от характеристик в виде набора вариантов. Фильтр работает ТОЛЬКО с вариантами и (в этой же теме? не помню) я выкладывал конвертер одних характеристик в другие.

(совершенно безотносительно вышенаписанного ответа) UPDATE:

В исходном фильтре (в шапке) список страниц в навигаторе никак не ограничен. На днях мне попался сайт, где при выборке ВСЕХ товаров навигатор состоял из нескольких сотен страниц между "<<пред" и "след>>". Получалось не особо красиво, т.к. полтора экрана занимал навигатор :).

Соответственно, апдейт. Теперь навигатор всегда содержит двадцать одну страницу. Десять предыдущих, текущую и десять следующих. Для начальных и конечных страниц соотношение меняется (т.е. для первой - двадцать следующих, для предпоследней - 19 предыдущих и одна следующая), но общее количество всегда 21. Это количество можно изменить в коде (одна переменная).

Прикрепленные файлы

  • Прикрепленный файл  filter.php   9,17К   23 Количество загрузок:

http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#51 VerstkaShopcms

    Пользователь

  • Download User
  • PipPip
  • 20 сообщений
Репутация: 4
Начинающий

Отправлено 21 ноября 2014 - 23:21

С фильтром разобрался. Почему-то не цеплялась валюта.

Есть вопрос к разработчику - насколько реально и накладно будет допилить данный фильтр для того чтобы он работал на странице простого поиска на сайте? Конкретизирую вопрос- сейчас данный фильтр работает на странице простого поиска, но не с тем массивом который отфильтровался условиями поиска а со всем товарами магазина. По коду это логично и правильно работает. Необходима возможность получать параметры и фильтровать по уже найденным товарам из условия поискового запроса.

#52 badisoft

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 5 072 сообщений
Репутация: 783
Мастер

Отправлено 22 ноября 2014 - 15:47

Просмотр сообщенияVerstkaShopcms сказал:

насколько реально и накладно будет допилить данный фильтр для того чтобы он работал на странице простого поиска на сайте?
Посмотрел код - вполне реально. Надо в запросы, делающие выборку по товарам и характеристикам добавить тот же фильтр, что в простом поиске.
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#53 chumak

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений
Репутация: 0
Начинающий

Отправлено 17 января 2015 - 11:48

Подскажите, можно ли сформировать урл, после перехода по которому в категории с фильтром отображались какие то определенные "чекнутые" товары?

Например, мне нужно с баннера Новинки на Главной переслать визитора в категорию "Устройства для чтения электронных книг" и показать ему только PocketBook?

#54 badisoft

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 5 072 сообщений
Репутация: 783
Мастер

Отправлено 18 января 2015 - 16:12

Просмотр сообщенияchumak сказал:

Подскажите, можно ли сформировать урл, после перехода по которому в категории с фильтром отображались какие то определенные "чекнутые" товары?
Можно, но не в рамках этой темы и этого фильтра. Т.к. фильтр "аяксовый", то довольно очевидно (как мне кажется), что "сформировать урл", т.е. перейти по какой-то конкретной ссылке и получить отфильтрованный результат не получится.

Включите штатный фильтр ShopCMS и посмотрите, как формируется ссылка на результат работы фильтра. Вот это и есть то, что Вам надо. Там что-то типа
site.ru/index.php?search=1&param_xx1=yy1&param_xx2=yy2&param_xx3=yy3
Вот эти xxN это номера характеристик, а yyN это номера вариантов характеристик.
Штатный фильтр довольно убогий, т.к. не позволяет задавать НЕСКОЛЬКО вариантов характеристики (поищите на форуме "развесистый фильтр", он решает эту проблему), но понимание самой идеи формирования ссылки по любому получите. А если Вам фильтрации более, чем по одному варианту характеристики не надо, то и штатных возможностей ShopCMS хватит за глаза для "сформировать урл".
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#55 chumak

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений
Репутация: 0
Начинающий

Отправлено 20 января 2015 - 10:11

badisoft, спасибо за ответ. буду пробовать с доп характеристиками играться
в целом новый аякс фильтр очень удобный и менять не охота.

#56 Den

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 117 сообщений
Репутация: 0
Начинающий

Отправлено 16 февраля 2015 - 20:36

badisoft, большое спасибо за модуль.

Появился вопрос. В файле filter.php присутствуют закомментированные строки, связанные с модулем ЧПУ от Трикивеба, а именно:
#$fcat = catCalculatePathToCategory($categoryID);
#foreach ($fcat as $key => $val) $fcat[$key]['url'] = '/'.$val['alias'].'/';
#$smarty->assign( "product_category_path", $fcat);
а также строка с комментарием:
	$row["url"]				 = $row["alias"].".html"; // строка, нужная только при ЧПУ-модуле от Трикивеба (и выросших из него аналогов).

Являюсь счастливым обладателем модуля ЧПУ от Трикивеба. При использовании дефолтного filter.php в выдаче отфильтрованных товаров правильные ссылки на товары вида: сайт.ру/тапки/модные_тапки_123.html заменяются на ссылки вида сайт.ру/category_35/модные_тапки_123.html
При раскомментировании вышеуказанного кода ничего не меняется.


Скрытый текст
Написать 5 сообщений (5 осталось)


#57 badisoft

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 5 072 сообщений
Репутация: 783
Мастер

Отправлено 16 февраля 2015 - 21:00

Просмотр сообщенияDen сказал:

В файле filter.php присутствуют закомментированные строки, связанные с модулем ЧПУ от Трикивеба, а именно:
Этот код создает иерархическую строку категорий с ЧПУ-ссылками вместо штатных ссылок. В самом верху шаблона категории.

Цитата

а также строка с комментарием:
Здесь элементу $row[''url'] задается ЧПУ-ссылка на продукт (товар).

Просмотр сообщенияDen сказал:

При раскомментировании вышеуказанного кода ничего не меняется.
Вариантов ЧПУ от Трикивеба разной степени переделки весьма не один. Они имеют как разные индексы элементов Smarty-массивов (url, uri), так и разные названия полей в SQL-таблицах, где хранится ЧПУ-ссылка (uri, url,alias). Это из того, что я встречал и помню. Попавшийся когда-то мне у клиента при установке фильтра вариант имел комбинацию url+alias, исходя из этого и написана правка. И у этого клиента в ссылке на товар название категории не используется (отсутствует), т.е. этот момент вообще никак не отслежен.

В общем случае все равно надо править "под себя".
Но, ИМХО, оно весьма не сложно.
Надо посмотреть в используемом фильтром шаблоне (category.tpl.html и инклюдящийся в него product_brief.tpl.html, насколько я помню) какие смарти-элементы выводятся в тех местах, где "получилось неправильно". Ну и создать правильные :).
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#58 Den

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 117 сообщений
Репутация: 0
Начинающий

Отправлено 17 февраля 2015 - 09:45

Цитата

Вариантов ЧПУ от Трикивеба разной степени переделки весьма не один. Они имеют как разные индексы элементов Smarty-массивов (url, uri), так и разные названия полей в SQL-таблицах, где хранится ЧПУ-ссылка (uri, url,alias).
Похоже что речь идет именно о том модуле, который присутствует у нас на форуме. В нем есть и ЧПУ для категории и ЧПУ для товара. Псевдоним для категории хранится в таблице pwqk_categories в поле uri, а для товара в таблице pwqk_products также в поле uri. А общая ссылка на товар выглядит как сайт.ру/чпу_категории/чпу_товара.html
Упоминаний переменной alias не нашел...
Может подскажите как сделать вывод отфильтрованных товаров вообще без ЧПУ, как в голом shopcms, так сказать универсальный вариант? Или это только отключать ЧПУ в самих настройках надо?

#59 badisoft

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 5 072 сообщений
Репутация: 783
Мастер

Отправлено 17 февраля 2015 - 12:17

Просмотр сообщенияDen сказал:

Может подскажите как сделать вывод отфильтрованных товаров вообще без ЧПУ, как в голом shopcms, так сказать универсальный вариант? Или это только отключать ЧПУ в самих настройках надо?
Насвкидку, умозрительно - положить рядом с category.tpl.html и product_brief.tpl.html аналогичные файлы от шаблона без ЧПУ. Переименовав их как-нибудь типа category_etl.tpl.html и product_brief_etl.tpl.html. Ну и исправить соответствующие ссылки в filter.php на category_etl.tpl.html, а в category_etl.tpl.html на product_brief_etl.tpl.html.

Другими словами, сделать так, чтобы для фильтра отрабатывался исходный вариант шаблона категории, который без ЧПУ.

Правда, совершенно не понятно, зачем такие извращения, если можно сделать нормально.
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#60 Den

    Продвинутый пользователь

  • Assistent vsupport.ru
  • PipPipPip
  • 117 сообщений
Репутация: 0
Начинающий

Отправлено 17 февраля 2015 - 20:07

badisoft, а стоит ли ожидать появления в этом фильтре ползунков задания диапазона значений для дополнительных характеристик (как в этом модуле)?