コード例 #1
0
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']);
        }
    }
}
コード例 #2
0
 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;
 }
コード例 #3
0
$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) {
コード例 #4
0
     $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'] != '') {
コード例 #5
0
 $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));