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

Фильтры товаров (посередине страницы)


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

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

Получается, что в шаблонах product_listing фильтры работают, а в шаблонах categorie_listing - нет.

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

По идее - никак.

Ведь фильтр привязывается к конкретной категории.

Тогда я не очень понимаю логику:

1. Создаем группу спецификаций.

2. Прикрепляем её к каталогу, в котором нет товаров, но указываем:

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

3. Создаем фильтр к спецификации. И опять-таки указываем:
Фильтры подкатегорий help.jpg

 

И в итоге мы получаем:
"Стабильный" фильтр в БОКСЕ фильтров (в левой колонке)
и "Мигающий" фильтр в основном окне посередине сайта (в зависимости от типа категории).

 

Задам вопрос по другому.

где формируется метка {$FILTERS}, используемая в файле product_listing_list.html

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

В /includes/modules/product_filter.php

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

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

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

А в запрос который в боксе ищет получается?

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

Можно попробовать в /includes/modules/default.php после:

  $default->assign('CATEGORIES_DESCRIPTION', $category['categories_description']);

добавить:

  include (DIR_WS_MODULES.'products_filter1.php');	

В /templates/шаблон/module/categories_listing/ шаблон добавить: {$FILTERS}

и взять файл /includes/modules/product_filter1.php

Но не знаю, видимо, не будет работать.

 

products_filter1.php

Поставьте метку бокса фильтры в /templates/шаблон/index.html сразу над {$main_content}

Тогда, по идее, будут фильтры над основным содержимым, а не слева.

Изменено пользователем VaM
Ссылка на сообщение
Поделиться на другие сайты

Можно попробовать в /includes/modules/default.php после:

  $default->assign('CATEGORIES_DESCRIPTION', $category['categories_description']);

добавить:

  include (DIR_WS_MODULES.'products_filter1.php');	

В /templates/шаблон/module/categories_listing/ шаблон добавить: {$FILTERS}

и взять файл /includes/modules/product_filter1.php

Но не знаю, видимо, не будет работать.

products_filter1.php

Сделал. вроде работает.

Вот здесь: http://biser.su/index.php?cat=1054

 

А вот это :

Поставьте метку бокса фильтры в /templates/шаблон/index.html сразу над {$main_content}

Тогда, по идее, будут фильтры над основным содержимым, а не слева.

... пока не делал. Пока не понял для чего это нужно.

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

Хорошо, раз работает.

Вынес в раздел faq это решение.

 

Изменено пользователем VaM
Ссылка на сообщение
Поделиться на другие сайты

Спасибо за помощь.

 

И раз уж тема про фильтры.

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

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

Да вроде все страницы должны быть.

Ради эксперимента, попробуйте удалить вот этот код внизу в /includes/application_top.php:

$url = vam_href_link(basename($PHP_SELF), vam_get_all_get_params(array ('page', 'cPath', 'info', 'x', 'y')));

if ($cID && PRODUCT_LIST_RECURSIVE == 'false') {

$listing_sql = "select p.products_fsk18, p.products_shippingtime, p.products_model, p.products_ean, pd.products_name, m.manufacturers_name, p.products_quantity, p.products_image, p.products_weight, pd.products_short_description, pd.products_description, p.products_id, p.manufacturers_id, p.products_price, p.products_vpe, p.products_vpe_status, p.products_vpe_value, p.products_discount_allowed, p.products_tax_class_id from products_description pd, products_to_categories p2c, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '1' and p2c.categories_id = '".$cID."' ORDER BY p.products_price DESC";
$max_result = MAX_DISPLAY_SEARCH_RESULTS;
$listing_split = new splitPageResults($listing_sql, (int)$_GET['page'], $max_result, 'p.products_id');
$number_of_pages = ceil($listing_split->number_of_rows / $max_result);

if (SEARCH_ENGINE_FRIENDLY_URLS == 'true') {
$end_page_url = $url.'/page/'.$number_of_pages;
} else {
$end_page_url = $url.'?page='.$number_of_pages;
}
	  if($number_of_pages < $_GET['page']){
			header("HTTP/1.1 301 Moved Permanently");
			header("Location: $end_page_url");
			exit();
	  }
}
	  
if(trim($_GET['page']) == '1' && $url != ''){
			header("HTTP/1.1 301 Moved Permanently");
			header("Location: $url");
			exit();
}

if($_SERVER['REQUEST_URI'] != DIR_WS_CATALOG && $PHP_SELF == DIR_WS_CATALOG.'index.php' && !$_GET ){
			header("HTTP/1.1 301 Moved Permanently");
			header("Location: ".DIR_WS_CATALOG."");
			exit();
}
 
if (strpos($PHP_SELF, FILENAME_PRODUCT_INFO) !== FALSE || strpos($PHP_SELF, FILENAME_PRODUCT_REVIEWS) !== FALSE) {
    require('includes/modules/headerstatushandler.php');
}

 

Может он мешает.

 

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

Ради эксперимента, попробуйте удалить вот этот код внизу в /includes/application_top.php:

Спасибо. Это помогло.

А что этот код должен делать?

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

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

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