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


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


  • Вы не можете ответить в тему
Сообщений в теме: 187

#41 1baddog1

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

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

Отправлено 07 August 2014 - 11:33 AM

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

#42 badisoft

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

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 07 August 2014 - 11:35 AM

Но почему-то только ползунок с ценой появился, а остальных характеристик нет. С чем это может быть связано?

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

#43 1baddog1

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

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

Отправлено 07 August 2014 - 12:02 PM

Но почему-то только ползунок с ценой появился, а остальных характеристик нет. С чем это может быть связано?

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


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

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

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

#44 badisoft

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

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 07 August 2014 - 01:00 PM

но как сделать чтобы не было селекта?

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

#45 1baddog1

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

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

Отправлено 07 August 2014 - 01:08 PM

но как сделать чтобы не было селекта?

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>


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

#46 badisoft

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

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 07 August 2014 - 02:11 PM

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}
...

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

Да, конечно. За деньги вообще очень многое возможно :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#47 1baddog1

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

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

Отправлено 07 August 2014 - 02:22 PM

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}
...

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

Да, конечно. За деньги вообще очень многое возможно :).


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

#48 badisoft

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

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 07 August 2014 - 02:52 PM

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

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

#49 VerstkaShopcms

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

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

Отправлено 10 November 2014 - 06:30 PM

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

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

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

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

#50 badisoft

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

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 10 November 2014 - 07:19 PM

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

Нет. Этот фильтр не требует предварительной установки каких-либо модулей.

У меня не получается его заставить работать

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

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

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

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

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

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

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

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

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

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

#51 VerstkaShopcms

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

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

Отправлено 21 November 2014 - 11:21 PM

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

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

#52 badisoft

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

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 22 November 2014 - 03:47 PM

насколько реально и накладно будет допилить данный фильтр для того чтобы он работал на странице простого поиска на сайте?

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

#53 chumak

    Новичок

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

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

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

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

#54 badisoft

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

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 18 January 2015 - 04:12 PM

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

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

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

#55 chumak

    Новичок

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

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

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

#56 Den

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

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

Отправлено 16 February 2015 - 08:36 PM

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
При раскомментировании вышеуказанного кода ничего не меняется.



  • 0

#57 badisoft

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

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 16 February 2015 - 09:00 PM

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

Этот код создает иерархическую строку категорий с ЧПУ-ссылками вместо штатных ссылок. В самом верху шаблона категории.

а также строка с комментарием:

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

При раскомментировании вышеуказанного кода ничего не меняется.

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

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

#58 Den

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

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

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

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

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

#59 badisoft

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

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 17 February 2015 - 12:17 PM

Может подскажите как сделать вывод отфильтрованных товаров вообще без ЧПУ, как в голом 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.

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

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

#60 Den

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

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

Отправлено 17 February 2015 - 08:07 PM

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