function getFilterCount($specification, $specifications_id, $filter_class, $products_column_name) { $raw_query_start = "select count(distinct p.products_id) as count "; $raw_query_from = " FROM (" . TABLE_PRODUCTS . " p)\nINNER JOIN (" . TABLE_PRODUCTS_TO_CATEGORIES . " p2c)\nON (p.products_id = p2c.products_id)\nINNER JOIN " . TABLE_CATEGORIES . " cat\nON (cat.categories_id = p2c.categories_id)"; $raw_query_where = " WHERE p.products_status = '1' AND cat.categories_status = '1'"; if ($this->current_category_id != 0) { // Restrict query to the appropriate category/categories $subcategories_array = array(); vam_get_subcategories($subcategories_array, $this->current_category_id); if (SPECIFICATIONS_FILTER_SUBCATEGORIES == 'True' && count($subcategories_array) > 0) { $category_ids = $this->current_category_id . ',' . implode(',', $subcategories_array); $raw_query_where .= ' ' . "and p2c.categories_id in (" . $category_ids . ") "; } else { $raw_query_where .= " and p2c.categories_id = '" . $this->current_category_id . "' "; } } // if ($this->current_category_id $raw_query_addon_array = vam_get_filter_sql($filter_class, $specifications_id, $specification, $products_column_name, '1'); $raw_query_from .= $raw_query_addon_array['from']; $raw_query_where .= $raw_query_addon_array['where']; $applied_filters = $this->getAppliedFilters(); foreach ($applied_filters as $k => $v) { if ($k == $specifications_id) { continue; } $specs_array = $this->getSpecification($k); $raw_query_addon_array = vam_get_filter_sql($specs_array['filter_class'], $specs_array['specifications_id'], $v, $specs_array['products_column_name'], $this->languages_id); $raw_query_from .= $raw_query_addon_array['from']; $raw_query_where .= $raw_query_addon_array['where']; } // foreach($applied_filters $raw_query = $raw_query_start . $raw_query_from . $raw_query_where; //print 'Raw Query: ' . $raw_query . '<br>'; $filter_count_query = vam_db_query($raw_query); $filter_count_results = vam_db_fetch_array($filter_count_query); $count = (string) $filter_count_results['count']; return $count; }
$var = 'f' . $specs_array['specifications_id']; ${$var} = '0'; if (isset($_GET[$var]) && $_GET[$var] != '') { // Decode the URL-encoded names, including arrays ${$var} = vam_decode_recursive($_GET[$var]); // Sanitize variables to prevent hacking //$$var = preg_replace("/^[ а-яА-Я\/]+$/","", $$var); // Get rid of extra values if Select All is selected ${$var} = vam_select_all_override(${$var}); // Get the breadcrumbs data for the filters that are set $filter_breadcrumbs = vam_get_filter_breadcrumbs($specs_array, ${$var}); $specs_array_breadcrumb = array_merge($specs_array_breadcrumb, (array) $filter_breadcrumbs); // Set the correct variable type (All _GET variables are strings by default) ${$var} = vam_set_type(${$var}); // Get the SQL to apply the filters $sql_string_array = vam_get_filter_sql($specs_array['filter_class'], $specs_array['specifications_id'], ${$var}, $specs_array['products_column_name'], $_SESSION['languages_id']); $sql_array['from'] .= $sql_string_array['from']; $sql_array['where'] .= $sql_string_array['where']; } // if (isset ($_GET[$var] } // while ($specs_array $listing_sql = ''; //fsk18 lock $fsk_lock = ''; if ($_SESSION['customers_status']['customers_fsk18_display'] == '0') { $fsk_lock = ' and p.products_fsk18!=1'; } // sorting query $sorting_query = vamDBquery("SELECT products_sorting,\n products_sorting2 FROM " . TABLE_CATEGORIES . "\n where categories_id='" . $current_category_id . "'"); $sorting_data = vam_db_fetch_array($sorting_query, true);