View Single Post
  #2  
Old 05-16-2009, 08:29 AM
 
mltriebe mltriebe is offline
 

Senior Member
  
Join Date: Mar 2006
Posts: 137
 

Default Re: Ramdom Best Sellers on Home Page

The other file is func.php

[code]
Code:
<?php if ( !defined('XCART_START') ) { header("Location: ../"); die("Access denied"); } # # Search for products in products database # function func_search_random_products($query, $membershipid, $limit="") { global $current_area, $user_account, $active_modules, $xcart_dir, $current_location, $single_mode; global $store_language, $sql_tbl; global $config; global $cart, $login; global $active_modules; x_load('files','taxes'); # # Initialize service arrays # $fields = array(); $from_tbls = array(); $inner_joins = array(); $left_joins = array(); $where = array(); $groupbys = array(); # # Generate membershipid condition # $membershipid_condition = ""; $membershipid_string = ($membershipid == 0 || empty($active_modules['Wholesale_Trading'])) ? "= 0" : "IN ('$membershipid', 0)"; if ($current_area == "C") { $where[] = "($sql_tbl[category_memberships].membershipid = '$membershipid' OR $sql_tbl[category_memberships].membershipid IS NULL)"; $where[] = "$sql_tbl[products].forsale='Y'"; $where[] = "($sql_tbl[product_memberships].membershipid = '$membershipid' OR $sql_tbl[product_memberships].membershipid IS NULL)"; } # # Generate products availability condition # if ($config["General"]["unlimited_products"]=="N" && (($current_area == "C" || $current_area == "B") && $config["General"]["disable_outofstock_products"] == "Y")) $where[] = "$sql_tbl[products].avail > 0"; $from_tbls[] = "pricing"; $inner_joins = array( "products_categories" => array( "on" => "$sql_tbl[products_categories].productid = $sql_tbl[products].productid", ), "categories" => array( "on" => "$sql_tbl[categories].categoryid = $sql_tbl[products_categories].categoryid AND $sql_tbl[categories].avail = 'Y'", ) ); $left_joins = array(); $fields[] = "$sql_tbl[products].productid"; if ($current_area == "C") { $left_joins["products_lng"] = array( "on" => "$sql_tbl[products].productid = $sql_tbl[products_lng].productid AND code = '$store_language'" ); $fields[] = "IF($sql_tbl[products_lng].productid != '', $sql_tbl[products_lng].product, $sql_tbl[products].product) as product"; } else { $fields[] = "$sql_tbl[products].product"; } $fields[] = "$sql_tbl[products].productcode"; $fields[] = "$sql_tbl[products].avail"; $fields[] = "$sql_tbl[products].descr"; $fields[] = "$sql_tbl[products].min_amount"; $fields[] = "$sql_tbl[products].list_price"; if ($current_area != 'C') { $fields[] = "MIN($sql_tbl[pricing].price) as price"; } else { $fields[] = "$sql_tbl[pricing].price"; $left_joins['quick_prices'] = array( "on" => "$sql_tbl[quick_prices].productid = $sql_tbl[products].productid AND $sql_tbl[quick_prices].membershipid $membershipid_string" ); $where[] = "$sql_tbl[quick_prices].priceid = $sql_tbl[pricing].priceid"; } if ($current_area == "C" && !$single_mode) { $inner_joins["ACHECK"] = array( "tblname" => "customers", "on" => "$sql_tbl[products].provider=ACHECK.login AND ACHECK.activity='Y'", ); } $left_joins['category_memberships'] = array( "on" => "$sql_tbl[category_memberships].categoryid = $sql_tbl[categories].categoryid", "parent" => "categories" ); $left_joins['product_memberships'] = array( "on" => "$sql_tbl[product_memberships].productid = $sql_tbl[products].productid" ); $where[] = "$sql_tbl[products].productid = $sql_tbl[products_categories].productid"; $where[] = "$sql_tbl[products_categories].categoryid = $sql_tbl[categories].categoryid"; $where[] = "$sql_tbl[products].productid = $sql_tbl[pricing].productid"; $where[] = "$sql_tbl[pricing].quantity = '1'"; if (empty($membershipid)) { $where[] = "$sql_tbl[pricing].membershipid = 0"; } else { $where[] = "$sql_tbl[pricing].membershipid IN ('$membershipid', 0)"; } if ($current_area == 'C' && empty($active_modules['Product_Configurator'])) { $where[] = "$sql_tbl[products].product_type <> 'C'"; $where[] = "$sql_tbl[products].forsale <> 'B'"; } if ($current_area == 'C' && !empty($active_modules['Product_Options'])) { $where[] = "($sql_tbl[pricing].variantid = 0 OR ($sql_tbl[variants].variantid = $sql_tbl[pricing].variantid".(($config["General"]["disable_outofstock_products"] == "Y" && $config["General"]["unlimited_products"] != "Y")?" AND $sql_tbl[variants].avail > 0":"")."))"; } else { $where[] = "$sql_tbl[pricing].variantid = '0'"; } $groupbys[] = "$sql_tbl[products].productid"; # # Check if product have prodyct class (Feature comparison) # if (!empty($active_modules['Feature_Comparison']) && $current_area == "C") { global $comparison_list_ids; $left_joins['product_features'] = array( "on" => "$sql_tbl[product_features].productid = $sql_tbl[products].productid" ); $fields[] = "$sql_tbl[product_features].fclassid"; if (($config['Feature_Comparison']['fcomparison_show_product_list'] == 'Y') && $config['Feature_Comparison']['fcomparison_max_product_list'] > @count((array)$comparison_list_ids)) { $fields[] = "IF($sql_tbl[product_features].fclassid IS NULL || $sql_tbl[product_features].productid IN ('".@implode("','",@array_keys((array)$comparison_list_ids))."'),'','Y') as is_clist"; } } # # Check if product have product options (Product options) # if (!empty($active_modules['Product_Options'])) { $left_joins['classes'] = array( "on" => "$sql_tbl[classes].productid = $sql_tbl[products].productid" ); if ($current_area == 'C') { $left_joins['variants'] = array( "on" => "$sql_tbl[variants].productid = $sql_tbl[products].productid AND $sql_tbl[quick_prices].variantid = $sql_tbl[variants].variantid", ); $fields[] = "$sql_tbl[quick_prices].variantid"; global $variant_properties; foreach ($variant_properties as $property) { $fields[] = "IFNULL($sql_tbl[variants].$property, $sql_tbl[products].$property) as ".$property; } } else { $left_joins['variants'] = array( "on" => "$sql_tbl[variants].productid = $sql_tbl[products].productid", ); } $fields[] = "IF($sql_tbl[classes].classid IS NULL,'','Y') as is_product_options"; $fields[] = "IF($sql_tbl[variants].variantid IS NULL,'','Y') as is_variant"; } if ($config['setup_images']['T']['location'] == "FS") { $left_joins['images_T'] = array( "on" => "$sql_tbl[images_T].id = $sql_tbl[products].productid" ); $fields[] = "IF($sql_tbl[images_T].id IS NULL, '', 'Y') as is_thumbnail"; $fields[] = "$sql_tbl[images_T].image_path"; } if ($current_area == "C") { $left_joins['product_taxes'] = array( "on" => "$sql_tbl[product_taxes].productid = $sql_tbl[products].productid" ); $fields[] = "$sql_tbl[product_taxes].taxid"; } # # Generate search query # foreach ($inner_joins as $j) { if (!empty($j['fields']) && is_array($j['fields'])) $fields = func_array_merge($fields, $j['fields']); } foreach ($left_joins as $j) { if (!empty($j['fields']) && is_array($j['fields'])) $fields = func_array_merge($fields, $j['fields']); } $search_query = "SELECT ".implode(", ", $fields)." FROM "; if (!empty($from_tbls)) { foreach ($from_tbls as $k => $v) { $from_tbls[$k] = $sql_tbl[$v]; } $search_query .= implode(", ", $from_tbls).", "; } $search_query .= $sql_tbl['products']; foreach ($left_joins as $ljname => $lj) { if (!empty($lj['parent'])) continue; $search_query .= " LEFT JOIN "; if (!empty($lj['tblname'])) { $search_query .= $sql_tbl[$lj['tblname']]." as ".$ljname; } else { $search_query .= $sql_tbl[$ljname]; } $search_query .= " ON ".$lj['on']; } foreach ($inner_joins as $ijname => $ij) { $search_query .= " INNER JOIN "; if (!empty($ij['tblname'])) { $search_query .= $sql_tbl[$ij['tblname']]." as ".$ijname; } else { $search_query .= $sql_tbl[$ijname]; } $search_query .= " ON ".$ij['on']; foreach ($left_joins as $ljname => $lj) { if ($lj['parent'] != $ijname) continue; $search_query .= " LEFT JOIN "; if (!empty($lj['tblname'])) { $search_query .= $sql_tbl[$lj['tblname']]." as ".$ljname; } else { $search_query .= $sql_tbl[$ljname]; } $search_query .= " ON ".$lj['on']; } } $search_query .= " WHERE ".implode(" AND ", $where).$query; if (!empty($groupbys)) $search_query .= " GROUP BY ".implode(", ", $groupbys); $limit = max(intval($limit), 0); if (!empty($limit)) $search_query .= " LIMIT ".$limit; db_query("SET OPTION SQL_BIG_SELECTS=1"); $result = func_query($search_query); $ids = array(); if (!empty($result)) { foreach($result as $v) { $ids[] = $v['productid']; } } if ($result && ($current_area=="C" || $current_area=="B") ) { # # Post-process the result products array # if (!empty($active_modules['Extra_Fields'])) { $tmp = func_query("SELECT *, IF($sql_tbl[extra_fields_lng].field != '', $sql_tbl[extra_fields_lng].field, $sql_tbl[extra_fields].field) as field FROM $sql_tbl[extra_field_values], $sql_tbl[extra_fields] LEFT JOIN $sql_tbl[extra_fields_lng] ON $sql_tbl[extra_fields].fieldid = $sql_tbl[extra_fields_lng].fieldid AND $sql_tbl[extra_fields_lng].code = '$shop_language' WHERE $sql_tbl[extra_fields].fieldid = $sql_tbl[extra_field_values].fieldid AND $sql_tbl[extra_field_values].productid IN ('".implode("','", $ids)."') AND $sql_tbl[extra_fields].active = 'Y'"); $products_ef = array(); if (!empty($tmp) && is_array($tmp)) { foreach($tmp as $v) { $products_ef[$v['productid']][] = $v; } } } if (!empty($active_modules['Product_Options']) && !empty($ids)) { $options_markups = func_get_default_options_markup_list($ids); }
__________________
X-Cart 4.3.1
Buy Together Module, AlteredCart
CDSEO Pro
One Page Checkout, AlteredCart
Smart Search, AlteredCart
On Sale, AlteredCart
Reply With Quote