Hi,
Really nice module!
Quote Originally Posted by su35 View Post
However, in the categories field, every category had been listed twice. I out put the $categories by print_() in tpl_dynamic_filter.php. It has been shown that every category had been double. Hope someone can help me to fix it.
tpl_dynamic_filter.php
Find:
PHP Code:
                $categories $db->Execute("SELECT categories_id, categories_name, IF(categories_id IN (" implode(','$filteredCategories) . "), 'Y', 'N') as flag" .
                 
" FROM " TABLE_CATEGORIES_DESCRIPTION .
                 
" WHERE categories_id IN (" implode(','$unfilteredCategories) . ")" .
                
" ORDER BY categories_name"); 
Replace by
PHP Code:
                $categories $db->Execute("SELECT categories_id, categories_name, IF(categories_id IN (" implode(','$filteredCategories) . "), 'Y', 'N') as flag" .
                 
" FROM " TABLE_CATEGORIES_DESCRIPTION .
                 
" WHERE categories_id IN (" implode(','$unfilteredCategories) . ")" .
                 
"   AND language_id=" . (int)$_SESSION['languages_id'] .
                
" ORDER BY categories_name"); 
Find:
PHP Code:
        $attributes $db->Execute("SELECT count(DISTINCT p2a.products_id) as quantity, po.products_options_name, pov.products_options_values_name," .
         
" SUM(IF(p2a.products_id IN(" implode(','$filteredProducts) . "), 1, 0)) as flag" .
         
" FROM " TABLE_PRODUCTS_ATTRIBUTES " p2a ".
         
" JOIN " TABLE_PRODUCTS_OPTIONS " po ON p2a.options_id = po.products_options_id".
         
" JOIN " TABLE_PRODUCTS_OPTIONS_VALUES ." pov ON p2a.options_values_id = pov.products_options_values_id".
         (
defined('TABLE_PRODUCTS_WITH_ATTRIBUTES_STOCK') ? " JOIN " TABLE_PRODUCTS_WITH_ATTRIBUTES_STOCK " p2as ON p2a.products_id = p2as.products_id AND p2as.stock_attributes LIKE CONCAT('%', p2a.products_attributes_id, '%')" "") .
         
" WHERE p2a.products_id IN (" implode(','$unfilteredProducts) . ")" .
         (
FILTER_OPTIONS_INCLUDE != '' " AND p2a.options_id IN (" FILTER_OPTIONS_INCLUDE ")" '') .
         (
FILTER_OPTIONS_EXCLUDE != '' " AND p2a.options_id NOT IN (" FILTER_OPTIONS_EXCLUDE ")" '') .
         (
defined('TABLE_PRODUCTS_WITH_ATTRIBUTES_STOCK') ? " AND p2as.quantity > 0" "") .
         
" GROUP BY po.products_options_name, pov.products_options_values_name" .
         
" ORDER BY po.products_options_name, pov.products_options_values_sort_order"); 
Replace by
PHP Code:
        $attributes $db->Execute("SELECT COUNT(DISTINCT p2a.products_id) as quantity, po.products_options_name, pov.products_options_values_name," .
         
" SUM(IF(p2a.products_id IN(" implode(','$filteredProducts) . "), 1, 0)) as flag" .
         
" FROM " TABLE_PRODUCTS_ATTRIBUTES " p2a ".
         
" JOIN " TABLE_PRODUCTS_OPTIONS " po ON p2a.options_id = po.products_options_id AND po.language_id=" . (int)$_SESSION['languages_id'] .
         
" JOIN " TABLE_PRODUCTS_OPTIONS_VALUES ." pov ON p2a.options_values_id = pov.products_options_values_id AND pov.language_id=" . (int)$_SESSION['languages_id'] .
         (
defined('TABLE_PRODUCTS_WITH_ATTRIBUTES_STOCK') ? " JOIN " TABLE_PRODUCTS_WITH_ATTRIBUTES_STOCK " p2as ON p2a.products_id = p2as.products_id AND p2as.stock_attributes LIKE CONCAT('%', p2a.products_attributes_id, '%')" "") .
         
" WHERE p2a.products_id IN (" implode(','$unfilteredProducts) . ")" .
         (
FILTER_OPTIONS_INCLUDE != '' " AND p2a.options_id IN (" FILTER_OPTIONS_INCLUDE ")" '') .
         (
FILTER_OPTIONS_EXCLUDE != '' " AND p2a.options_id NOT IN (" FILTER_OPTIONS_EXCLUDE ")" '') .
         (
defined('TABLE_PRODUCTS_WITH_ATTRIBUTES_STOCK') ? " AND p2as.quantity > 0" "") .
         
" GROUP BY po.products_options_name, pov.products_options_values_name" .
         
" ORDER BY po.products_options_name, pov.products_options_values_sort_order");