In-Portal Issue Tracker

Welcome to the In-Portal Open Source CMS Issue Tracker! This is a central management / tracking tool for all types of tasks / issues / bugs for the In-Portal Project. Before reporting any issues, please make sure to read the Guide into Issue Tracker and How to Properly Test and Report Bugs!

Relationship Graph View Issue ] Dependency Graph ]
related to child of duplicate of

Viewing Issue Simple Details
ID Category Type Reproducibility Date Submitted Last Update
0001126 [In-Portal CMS] Front End bug report always 2011-09-27 06:31 2012-07-25 05:31
Reporter alex View Status public  
Assigned To Dmitry
Priority normal Resolution fixed  
Status closed      
Summary 0001126: Implement Smart Filters
Description Create a separate section where all possible filters are listed (product fields) + populate “product options” periodically (optional)

Custom filter - create method, that will have product field on input. Method will use list object and replace SELECT part to given field, COUNT(*) and group by that field. As a result we will get product count for each of that field values. Then, list all values in filter. Display filter text according to kOptionsFormatter (like ManufacturerId field) of that field or just value, when formatter is missing (like CachedRating field).

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

Front-End:
1. "[х] All" option above each filter
2. don't change filter counts/remove options when this/other filters are applied
Additional Information 1. добавить таблицу ItemFilters (FilterId, ItemPrefix, FilterField, FilterType (как у Custom Field) , Enabled) - 0.5 h
2. добавить секцию в административной консоли, где можно будет добавлять, включать/выключать фильтры - 1 h
3. сделать тэг PrintItemFilters, который будет поакзывать включённые фильтры согластно текущему префиксу (если смотрим на товары, то фильтры по товарам, если смотрим на категории, то фильтры по категориям - 3 h
4. сделать параметр у тэга PrintItemFilters, кототрый будет говорить, что нужно делать count только по текущей категории, а не со всего сайта в принципе - 0.5 h
5. при распечатке фильтра будет деллаться 1 запрос с COUNT(*) и GROUP BY чтобы понять сколько товаров/категорий/чего надо в каждом из значений фильтра (напр. сколько товарв в этой категории у каждого из производителей) - 1 h
6. запрос будет кешироваться (только если включён memcache) по префиксу фильтра, т.е. если это кол-во товаров и менялись товары, то кеш будет сброшен; также если это COUNT по категории, то ID катеогрии будет добавлено в ключ кеширования
7. значения фильтра, у которых 0 товаров не показываются в фильтре - 1 h
8. выбор значения одного фильтра может уменьшать значения в другом фильтре через ajax - 0.5 h
9. сделать ajax событие, которое будет делать как-бы тоже, что и тэг PrintItemFilters только данные будут возвращаться через JSON для пред. пункта - 3 h



Web Development by Intechnic
In-Portal Open Source CMS
In-Portal Open Source CMS
Copyright © 2000 - 2009 MantisBT Group

Powered by Mantis Bugtracker