Перейти к содержанию
Форум поддержки пользователей VamShop

Спецификации и фильтры


Рекомендуемые сообщения

Добрый день!

 

Вот что я сделал, чтобы фильтры выводились в 2 колонки в правом боксе (правом меню)

и чтобы не выводились по центру страницы

(версия 1.7)

 

  • В файле /includes/functions/products_specifications.php
    • убрал тег <br> (в блоке checkbox)
    • Добавил в блоке checkbox теги <div class=filters> и </div>

т.е. вот кусок этого правленного кода:

 

case 'checkbox':
$box_text .= vam_draw_form ('filter', $target, 'get');
$checkbox_id = 0;
foreach ($filters_select_array as $filter) {
$checked = ($filter['id'] == $filter_value[$checkbox_id]) ? true : false;
switch (true) {
case ($filter['count'] < 1 && SPECIFICATIONS_FILTER_NO_RESULT == 'none'):
break;
case ($filter['count'] < 1 && SPECIFICATIONS_FILTER_NO_RESULT == 'grey'):
$box_text .= '<div class=filters><input type="checkbox" name="0" value="0" disabled="disabled">';
$box_text .= '<span class="no_results">' . '&nbsp;';
$box_text .= vam_output_string ($filter['text'] );
$box_text .= '</span>';
if (SPECIFICATIONS_FILTER_SHOW_COUNT == 'True') {
$box_text .= '<span class="filter_count"> (' . $filter['count'] . ')</span>';
}
$box_text .= '</div>' . "\n";
break;

 

  • Добавил стиль в templates/имя_шаблона/stylesheet.css ------ .filters{width:105px;float:left}

     
  • Чтобы не выводились фильтры по центру страницы, убрал из файла templates/имя_шаблона/module/product_listing/product_listing_list.html

тег {$FILTERS}

 

-----------------------------------------------------------------------------------------

 

Вот что получилось:

 

my_filters.jpg

 

 

 

теперь вопросы:

 

Можно ли убрать кнопки, чтобы форма срабатывала после установки/снятия галочки (без всяких кнопок)

 

или можно ли оставить только две кнопки - одну для производителей и одну для всех прочих фильтров?

 

 

-------------

Спасибо

 

 

 

 

 

 

Ссылка на сообщение
Поделиться на другие сайты

Убрать можно если добавить какой-то js код, который будет обрабатывать форму без submit кнопки.

 

т.е. это только копаться к оде.

Ссылка на сообщение
Поделиться на другие сайты
  • 1 month later...

Вопрос с кнопками, чтобы форма срабатывала при установке (удалении) галочек решается следующим образом.

В файле /includes/functions/products_specifications.php ищем где задается функция vam_get_filter_string. Там есть такой кусок кода, отвечающий за вывод чекбоксов в боксе фильтры:

      case 'checkbox':
        $box_text .= vam_draw_form ('filter', $target, 'get');
        $checkbox_id = 0;
        foreach ($filters_select_array as $filter) {
          $checked = ($filter['id'] == $filter_value[$checkbox_id]) ? true : false;
          switch (true) {
            case ($filter['count'] < 1 && SPECIFICATIONS_FILTER_NO_RESULT == 'none'):
              break;

            case ($filter['count'] < 1 && SPECIFICATIONS_FILTER_NO_RESULT == 'grey'):
              $box_text .= '<input type="checkbox" name="0" value="0" disabled="disabled">';
              $box_text .= '<span class="no_results">' . '&nbsp;';
              $box_text .= vam_output_string ($filter['text'] );
              $box_text .= '</span>';
              if (SPECIFICATIONS_FILTER_SHOW_COUNT == 'True') {
                $box_text .= '<span class="filter_count"> (' . $filter['count'] . ')</span>';
              }
              $box_text .= '<br>' . "\n";
              break;

            default:
              $box_text .= vam_draw_checkbox_field ($filter_name . '[' . $checkbox_id . ']', $filter['id'], $checked) . '&nbsp;' . $filter['text'];

              if (SPECIFICATIONS_FILTER_SHOW_COUNT == 'True') {
                $box_text .= '<span class="filter_count"> (' . $filter['count'] . ')</span>';
              }
              $box_text .= '<br>' . "\n";
              break;
          } // switch (true)
          $checkbox_id++;
        }
        $box_text .= $additional_variables . vam_hide_session_id();
        $box_text .= vam_image_submit('submit.png', TEXT_FIND_PRODUCTS);
        $box_text .= '</form>';
        break;

меняем его на этот:

      case 'checkbox':
        $box_text .= vam_draw_form ('filter', $target, 'get');
        $checkbox_id = 0;
        foreach ($filters_select_array as $filter) {
          $checked = ($filter['id'] == $filter_value[$checkbox_id]) ? true : false;
          switch (true) {
            case ($filter['count'] < 1 && SPECIFICATIONS_FILTER_NO_RESULT == 'none'):
              break;

            case ($filter['count'] < 1 && SPECIFICATIONS_FILTER_NO_RESULT == 'grey'):
              $box_text .= '<input type="checkbox" name="0" value="0" disabled="disabled">';
              $box_text .= '<span class="no_results">' . '&nbsp;';
              $box_text .= vam_output_string ($filter['text'] );
              $box_text .= '</span>';
              if (SPECIFICATIONS_FILTER_SHOW_COUNT == 'True') {
                $box_text .= '<span class="filter_count"> (' . $filter['count'] . ')</span>';
              }
              $box_text .= '<br>' . "\n";
              break;

            default:
              $box_text .= vam_draw_checkbox_field ($filter_name . '[' . $checkbox_id . ']', $filter['id'], $checked, 'onClick=this.form.submit();"') . '&nbsp;' . $filter['text];

              if (SPECIFICATIONS_FILTER_SHOW_COUNT == 'True') {
                $box_text .= '<span class="filter_count"> (' . $filter['count'] . ')</span>';
              }
              $box_text .= '<br>' . "\n";
              break;
          } // switch (true)
          $checkbox_id++;
        }
        $box_text .= $additional_variables . vam_hide_session_id();
        $box_text .= '<noscript>' . vam_image_submit ('submit.png', TEXT_FIND_PRODUCTS) . '</noscript>';
        $box_text .= '</form>';
        break;

В принципе тут меняется всего пару строк.

Как работает можно посмотреть на моем сайте в детских колясках: http://kolyasochka.com.ua/detskie-koljaski.html

Ссылка на сообщение
Поделиться на другие сайты
  • 2 weeks later...

Почему нельзя выбрать сразу 2 и более, значения в одной спецификации ? получается ошибка db_error.htm

Ссылка на сообщение
Поделиться на другие сайты

Может дело в типе фильтра.

 

Вы вот тут посмотрите таблицу - http://vamshop.ru/manual/ch06s07.html

 

Зависит от класса фильтра - можно выбирать несколько значений или нет.

 

Не тот класс наверное выбрали.

Ссылка на сообщение
Поделиться на другие сайты

Еще можно сделать так ? что бы значение спецификации показывались только те к которым привязаны товары, т.е что бы не показывалось Значение (0),

Ссылка на сообщение
Поделиться на другие сайты

Нет, таких настроек вроде как нет, если я правильно помню.

Хотя можно посмотреть в Админке - Настройки - Спецификации товаров.

Ссылка на сообщение
Поделиться на другие сайты

Еще можно сделать так ? что бы значение спецификации показывались только те к которым привязаны товары, т.е что бы не показывалось Значение (0),

 

Вам нужно в Админке - Настройки - Спецификации товаров в пункте Не найдено товаров при фильтрации проставить none.

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

Считаю неуместно делать такой чекбокс.

хорошо реализовано на http://www.dns-shop.ru/catalog/105/smartfony/   

Шлепнул - появилась кнопка. Если нужно - могу рассказать реализацию

Ссылка на сообщение
Поделиться на другие сайты

Считаю неуместно делать такой чекбокс.

хорошо реализовано на http://www.dns-shop.ru/catalog/105/smartfony/   

Шлепнул - появилась кнопка. Если нужно - могу рассказать реализацию

раскажите если не трудно

Ссылка на сообщение
Поделиться на другие сайты

у вас здОрово сделана и корзина.

 

Можете поделиться, как сделать такую же корзину с автоматическим пересчетом и всплывающую кнопку фильтров?

Ссылка на сообщение
Поделиться на другие сайты
  • 1 month later...

Столкнулся с одной проблемой.

Фильтры перестают работать после того как в магазине включаешь кэширование: Настройки/Кэш - использовать кэш.

Куда ни ставь галочку в боксе фильтры - страница перегружается, а фильтр не применяется.

Что делать?

Ссылка на сообщение
Поделиться на другие сайты

Я правильно понял, что фильтры показываются только в самой нижней по иерархии категории, там где товар?

Т.е., например:

1. Электротовары

-- 1.2 Мясорубки

-- -- 1.2.1 Промышленные

-- -- 1.2.2 Бытовые

 

И в 1.2.1 и в 1.2.2 спецификации и фильтры одинаковые. Нельзя фильтровать сразу из Подкатегории 1.2?

Ссылка на сообщение
Поделиться на другие сайты

Скачайте демку vamshop.ru/download.html и попробуйте, как там, в 1.71 версии.

 

Вроде исправлялся этот глюк.

Ссылка на сообщение
Поделиться на другие сайты

Фильтры привязываются к конкретной категории.

 

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

Ссылка на сообщение
Поделиться на другие сайты

Можно привязать к Категории непосредственно в которой товара нет, а есть однотипные товары в нижестоящих Подкатегориях?

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...