function vam_get_subcategories(&$subcategories_array, $parent_id = 0) { $subcategories_query = "select categories_id from " . TABLE_CATEGORIES . " where parent_id = '" . $parent_id . "'"; $subcategories_query = vamDBquery($subcategories_query); while ($subcategories = vam_db_fetch_array($subcategories_query, true)) { $subcategories_array[sizeof($subcategories_array)] = $subcategories['categories_id']; if ($subcategories['categories_id'] != $parent_id) { vam_get_subcategories($subcategories_array, $subcategories['categories_id']); } } }
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; }
$sorting = ' ORDER BY ' . $sorting_data['products_sorting'] . ' ' . $sorting_data['products_sorting2'] . ' '; // We show them all if (GROUP_CHECK == 'true') { $group_check = " and p.group_permission_" . $_SESSION['customers_status']['customers_status_id'] . "=1 "; } if (PRODUCT_LIST_RECURSIVE == 'true') { $recursive_check = "and (p2c.categories_id = '" . $current_category_id . "' AND p2c.categories_id = c.categories_id OR p2c.categories_id = c.categories_id AND c.parent_id = '" . $current_category_id . "')"; $recursive_table_categories = TABLE_CATEGORIES . " c, "; } else { $recursive_check = "and p2c.categories_id = '" . $current_category_id . "'"; $recursive_table_categories = ""; } $listing_sql .= "select distinct p.products_id,\n p.products_fsk18,\n p.products_shippingtime,\n p.products_model,\n pd.products_name,\n p.products_ean,\n p.products_price,\n p.products_tax_class_id,\n m.manufacturers_name,\n p.products_quantity,\n p.products_image,\n p.products_weight,\n pd.products_short_description,\n pd.products_description,\n p.products_id,\n p.manufacturers_id,\n p.products_price,\n p.products_vpe,\n p.products_vpe_status,\n p.products_vpe_value,\n p.products_discount_allowed,\n p.products_tax_class_id,\r\n IF(s.status, s.specials_new_products_price, NULL)\r\n as specials_new_products_price,\r\n IF(s.status, s.specials_new_products_price, p.products_price)\r\n as final_price\r\n from\r\n " . TABLE_PRODUCTS . " p\r\n left join " . TABLE_SPECIALS . " s\r\n on p.products_id = s.products_id\r\n left join " . TABLE_MANUFACTURERS . " m\r\n on p.manufacturers_id = m.manufacturers_id\r\n join " . TABLE_PRODUCTS_DESCRIPTION . " pd\r\n on p.products_id = pd.products_id\r\n join " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c\r\n on p.products_id = p2c.products_id\r\n " . $sql_array['from'] . "\r\n where\r\n p.products_status = '1'\r\n and pd.language_id = '" . (int) $_SESSION['languages_id'] . "'\r\n " . $sql_array['where'] . "\r\n "; if ($current_category_id != 0) { $subcategories_array = array(); vam_get_subcategories($subcategories_array, $current_category_id); if (SPECIFICATIONS_FILTER_SUBCATEGORIES == 'True' && count($subcategories_array) > 0) { $category_ids = $current_category_id . ',' . implode(',', $subcategories_array); $listing_sql .= ' ' . "and p2c.categories_id in (" . $category_ids . ") \n"; } else { $listing_sql .= ' ' . "and p2c.categories_id = '" . (int) $current_category_id . "' \n"; } } // if ($current_category_id $listing_sql .= ' ' . $fsk_lock; $listing_sql .= ' ' . $group_check; $listing_sql .= ' ' . $sorting; // print $listing_sql . "<br>\n"; // Add Filter to Breadcrumbs if selected if (SPECIFICATIONS_FILTER_BREADCRUMB == 'True') { foreach ($specs_array_breadcrumb as $crumb) {
$group_check = " AND p.group_permission_" . $_SESSION['customers_status']['customers_status_id'] . "=1 "; } else { unset($group_check); } //manufacturers if set if (isset($_GET['manufacturers_id']) && vam_not_null($_GET['manufacturers_id'])) { $manu_check = " AND p.manufacturers_id = '" . (int) $_GET['manufacturers_id'] . "' "; } else { $manu_check = ''; } //include subcategories if needed $subcat_where = ''; if (isset($_GET['categories_id']) && vam_not_null($_GET['categories_id'])) { if ($_GET['inc_subcat'] == '1') { $subcategories_array = array(); vam_get_subcategories($subcategories_array, (int) $_GET['categories_id']); $subcat_join = " LEFT OUTER JOIN " . TABLE_PRODUCTS_TO_CATEGORIES . " AS p2c ON (p.products_id = p2c.products_id) "; $subcat_where = " AND p2c.categories_id IN ('" . (int) $_GET['categories_id'] . "' "; foreach ($subcategories_array as $scat) { $subcat_where .= ", '" . $scat . "'"; } $subcat_where .= ") "; } else { $subcat_join = " LEFT OUTER JOIN " . TABLE_PRODUCTS_TO_CATEGORIES . " AS p2c ON (p.products_id = p2c.products_id) "; $subcat_where = " AND p2c.categories_id = '" . (int) $_GET['categories_id'] . "' "; } } if ($_GET['pfrom'] || $_GET['pto']) { $rate = vam_get_currencies_values($_SESSION['currency']); $rate = $rate['value']; if ($rate && $_GET['pfrom'] != '') {
$categories_id = (int) $_POST['link_category_id']; $link_subcats = $_POST['link_subcats'] == 'True' ? 'True' : 'False'; if ($specification_group_id != 0) { $links_query_raw = "select specification_group_id\n from " . TABLE_SPECIFICATIONS_TO_CATEGORIES . "\n where specification_group_id = '" . $specification_group_id . "' \n and categories_id = '" . $categories_id . "'\n "; //print $links_query_raw . "<br />\n"; $links_query = vam_db_query($links_query_raw); if (vam_db_num_rows($links_query) < 1) { $sql_data_array = array('specification_group_id' => $specification_group_id, 'categories_id' => $categories_id); vam_db_perform(TABLE_SPECIFICATIONS_TO_CATEGORIES, $sql_data_array); } // if (vam_db_num_rows } // Link all subcategories if selected if ($link_subcats == 'True' && vam_has_category_subcategories($categories_id)) { $categories_array = array(); vam_get_subcategories($categories_array, $categories_id); foreach ($categories_array as $categories_id) { $sql_data_array = array(); $links_query_raw = "select specification_group_id\n from " . TABLE_SPECIFICATIONS_TO_CATEGORIES . "\n where specification_group_id = '" . $specification_group_id . "' \n and categories_id = '" . $categories_id . "'\n "; //print $links_query_raw . "<br />\n"; $links_query = vam_db_query($links_query_raw); if (vam_db_num_rows($links_query) < 1) { $sql_data_array = array('specification_group_id' => $specification_group_id, 'categories_id' => $categories_id); vam_db_perform(TABLE_SPECIFICATIONS_TO_CATEGORIES, $sql_data_array); } // if (vam_db_num_rows } // foreach ($categories_array } // if ($link_subcats vam_redirect(vam_href_link(FILENAME_PRODUCTS_SPECIFICATIONS, 'sgid=' . $specification_group_id));