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


Делаем развесистый фильтр товаров (обкатка, написание, дополнения)


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

#341 badisoft

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

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

Отправлено 11 May 2013 - 11:42 AM

Понадобилось тут....
Чтобы фильтр работал не только на страницах каталога, а где угодно:

1. копируем filter.tpl.html в filter1.tpl.html (shopCMS показывает блок filter.tpl.html только в каталогах независимо от настроек) и подключаем обычным образом как блок.

2. в файле advanced_search_in_category.php

2.1. строки


if ( isset($_GET["categoryID"]) )
{
$_GET["categoryID"] = (int)$_GET["categoryID"];


заменяем на


$get_categoryID = isset($_GET["categoryID"]) ? (int)$_GET["categoryID"] : 1;


2.2. все НИЖЕЛЕЖАЩИЕ (!) $_GET["categoryID"] заменяем на $get_categoryID.

2.3. убираем последнюю закрывающую фигурную скобку } в файле, она в самом конце.

2.4. удаляем строку


$categoryID = $_GET["categoryID"];


2.5. все вхождения $categoryID заменяем на $get_categoryID

Исправленный файл приложен.

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


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

#342 micehide

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

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

Отправлено 05 June 2013 - 09:46 PM

Смотрел код и не понял зачем ты делаешь такой запрос к БД в файле \core\includes\advanced_search_in_category.php:

$conf = db_query("SELECT settings_value FROM ".SETTINGS_TABLE." WHERE settings_c'CONF_CHECKSTOCK','CONF_SHOW_NULL_STOCK')");
$showNullStock = ' AND p.in_stock > 0 ';
while ($row = db_fetch_assoc($conf)) if (!$row['settings_value']) $showNullStock = "";

если он уже сделан и данные хранятся в глобальных переменных, можно проще:

if (CONF_CHECKSTOCK != 0 || CONF_SHOW_NULL_STOCK !=0) $showNullStock = ' AND p.in_stock > 0 ';

  • 0

#343 badisoft

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

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

Отправлено 06 June 2013 - 08:53 AM

если он уже сделан и данные хранятся в глобальных переменных, можно проще:

На момент написания фильтра (это ж была моя третья программа на PHP) я просто этого еще не знал :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#344 hels

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

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

Отправлено 19 June 2013 - 02:57 PM

возник вопрос, у меня есть товары "чехлы" у которых характеристика "поддерживаемые модели" = "iphone 3", но есть товары в которых эта характеристика должна быть "iphone 3, iphone 4 , iphone 5", конешно можно спокойно вручную написать свой вариант, но ведь фильтр этого не поймет.. как сделать чтобы фильтр понял что товар можно показывать только для "iphone 3" или только для "iphone 4" или только для "iphone 5" , так и если выбраны "iphone 3, iphone 4 , iphone 5" одновременно.. Есть тут выход?
  • 0

#345 badisoft

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

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

Отправлено 19 June 2013 - 04:10 PM

Есть тут выход?

Что-то я не понял проблемы. Фильтр именно так и работает, как Вам надо.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#346 hels

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

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

Отправлено 20 June 2013 - 12:46 PM

Что-то я не понял проблемы. Фильтр именно так и работает, как Вам надо.

т.е. можно написать "свой вариант" в характеристику "модели" в виде:iphone 3, iphone 4 , iphone 5 (одной строкой) и в фильтре если человек выберет только iphone 3 или iphone 3 или iphone 4 или iphone 5 товар покажется в выдаче?

*видел в фильтре есть поиск по названию, мне нужно чтобы человек ставил галочку например "iphone 4" и ему выдавался этот чехол.
  • 0

#347 hels

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

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

Отправлено 20 June 2013 - 02:22 PM

снова беда, у меня то не css а less, как переделать под less или и так пойдет?
  • 0

#348 badisoft

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

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

Отправлено 20 June 2013 - 03:18 PM

снова беда, у меня то не css а less, как переделать под less или и так пойдет?

Беда у Вас не с less вместо css, а с ленью. Никто за Вас не будет проверять, заработает ли модуль, если у вас установлено А вместо Б. Хотя я не очень понимаю, какое отношение CSS имеет к фильтру.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#349 hels

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

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

Отправлено 20 June 2013 - 03:51 PM

снова беда, у меня то не css а less, как переделать под less или и так пойдет?

Беда у Вас не с less вместо css, а с ленью. Никто за Вас не будет проверять, заработает ли модуль, если у вас установлено А вместо Б. Хотя я не очень понимаю, какое отношение CSS имеет к фильтру.

работает, но криво встал, вот скрин:
Изображение


и попутно вопрос по работе модуля, на "произвольные значения" фильтр реагирует? (судя по то скрину выше не реагирует..или я что не так делаю? просто мне нужно чтобы выбиралось галочкой "произвольное значение")
  • 0

#350 badisoft

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

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

Отправлено 20 June 2013 - 04:28 PM

и попутно вопрос по работе модуля, на "произвольные значения" фильтр реагирует?

Фильтр работает ТОЛЬКО с доп.характристиками. Характеристики, установленные прямо в товаре в виде "произвольной строки" фильтром не используются.

просто мне нужно чтобы выбиралось галочкой "произвольное значение"

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

#351 hels

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

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

Отправлено 21 June 2013 - 01:03 AM

но все же как привести фильтр в нормальный вид? как вижу на вашем сайте все идеально..
  • 0

#352 micehide

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

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

Отправлено 21 June 2013 - 06:38 AM

но все же как привести фильтр в нормальный вид? как вижу на вашем сайте все идеально..


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

#353 hels

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

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

Отправлено 21 June 2013 - 07:23 AM

ясно, не так выразился, я имел ввиду как подровнять внешний вид модуля, как видно на скрине его конкретно скосило.

и вот еще в админке в "статистике ошибок" пишет в 1 окне:
Спойлер

а в окне что ниже:
Спойлер

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

#354 badisoft

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

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

Отправлено 21 June 2013 - 09:04 AM

как подровнять внешний вид модуля, как видно на скрине его конкретно скосило.

Очевидно, что-то делать со стилями, задающими расположение внутри блока. CSS или LESS не так и важно, надо изучать и пробовать.
Я обычно в FF использую встроенное "исследовать элемент", там справа показываются соответствующие элементу стили, заданные и наследуемые, можно их отключать/менять и тут же видеть, что при этом произойдет. Наводим мыша на любой элемент внутри нужного блока, нажимаем правую кнопку, выбираем "исследовать элемент". Вверху появившегося окна будет иерархическая линейка, по которой можно добраться вверх до нужного уровня HTML-структуры.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#355 hels

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

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

Отправлено 21 June 2013 - 09:46 AM

что я делаю не так? ошибка в статистике ошибок админки:
ERROR: 1054:Unknown column 'pot.brief_show' in 'field list'
Sql: select povt.productID,pot.optionID,pot.name,pot.brief_show,pot.product_show,povt.option_value,povt.option_type,povt.option_show_times, povt.variantID, povt.optionID
FROM thad_product_options_values as povt LEFT JOIN thad_product_options as pot ON pot.optionID=povt.optionID
WHERE povt.productID IN ('62714') ORDER BY pot.sort_order, pot.name
Link: /
Date: 21.06.13 - 09:58:31
Dump:
array(0) {
}
array(0) {
}

и еще в др. окне тоже какие-то ошибки.. (в моем предыдущем сообщении видно)

при переходе в http://сайт.ру/product_catalogue появились какие-то кнопки (причем при переходе по этим появившимся кнопкам пишет "товары не найдены" и в других местах и в самих категориях этих кнопок нет):
Изображение

причем, эти кнопки появились как я понял из:
Изображение
после восстановления всех правленых файлов, эти кнопки пропали..

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

#356 Сергей45

    Новичок

  • Download User
  • Pip
  • 5 сообщений
Репутация: 0
Начинающий

Отправлено 22 June 2013 - 03:22 AM

Здравствуйте, столкнулся с такой проблемой.

Имеется 2 сайта (FTP разные). На первом ваш фильтр уже установлен и работает (ставил не я), на второй установил точно по инструкции, но эффекта не последовало - совершенно пустые блоки фильтра.
Ради эксперимента попробовал копировать файлы из директории config, отвечающие за доступ к БД, с первого сайта на второй - фильтр заработал.
Т.е. получается, что модуль фильтра установлен верно, но работает он почему-то только с БД первого сайта... Полный импорт\экспорт каталога товара и базы данных средствами админки результатов не дал.
Движок устанавливал тоже не я, имею доступ только к FTP и админке этих двух сайтов.

Подскажите пожалуйста где может быть загвоздка?
  • 0

#357 badisoft

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

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

Отправлено 22 June 2013 - 10:12 AM

модуль фильтра установлен верно, но работает он почему-то только с БД первого сайта

Думаю, на первом сайте прописаны доп.характеристики с вариантами и присвоены товарам, а на втором нет. Мой фильтр работает ТОЛЬКО с доп.характристиками.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#358 Сергей45

    Новичок

  • Download User
  • Pip
  • 5 сообщений
Репутация: 0
Начинающий

Отправлено 22 June 2013 - 08:47 PM

модуль фильтра установлен верно, но работает он почему-то только с БД первого сайта

Думаю, на первом сайте прописаны доп.характеристики с вариантами и присвоены товарам, а на втором нет. Мой фильтр работает ТОЛЬКО с доп.характристиками.


Спасибо за совет, однако дело оказалось и не в этом...

В том-то и загвоздка. Оба сайта практически 1 в 1 идентичны. Каталог товаров, вместе со всеми параметрами доп.характеристик, полностью экспортирован с первого сайта, где фильтр в порядке. Настройки админки тоже абсолютно одинаковы, вплоть до последней галочки (перепроверены неоднократно).

Чтобы исключить возможность ошибки в какой-нибудь мелочи, сделал следующее:
Полностью очищаю каталог товаров "проблемного" сайта.
Создаю категорию и одну пробную позицию товара. Создаю пробную характеристику с парой значений. Присваиваю эту характеристику товару - результата нет.
Проделываю те же действия на первом, "нормальном" сайте - фильтры всё отображают...

И тем не менее, если копировать файлы отвечающие за доступ к БД с "нормального" на "проблемный" - фильтры работают.
И наоборот, если на FTP сайта, с нормально работающим фильтром, копировать доступ к "проблемной" БД - всё перестаёт функционировать и там.

Возможно, проблема в БД?

Можете дать совет в такой ситуации?
  • 0

#359 badisoft

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

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

Отправлено 23 June 2013 - 02:02 PM

Можете дать совет в такой ситуации?

Я - нет. Тут нужно копаться в потрохах сайта и искать причину, а не гадать.
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#360 alexress

    Новичок

  • Assistent vsupport.club
  • Pip
  • 6 сообщений
Репутация: 0
Начинающий
  • ГородСанкт-Петербург

Отправлено 23 June 2013 - 09:06 PM

Великолепная весчь. Правда, пришлось автору пару глупых вопросов задать спросонок.)) Долго ловил ползунок, но поймал - пришлось полопатить head - много подключено скриптов. Пять с плюсом))
  • 0