Jump to content



Latest News: (loading..)

* * * * * 3 votes

[Contribtion] Year/Make/Model for OSC v2.3.x


  • Please log in to reply
217 replies to this topic

#21   kenji815

kenji815
  • Members
  • 17 posts
  • Real Name:Eddie

Posted 17 February 2011 - 03:20 AM

I just did a fresh install of osc 2.3.1
However i'm having problem with the YMM addon.

http://garagedefend.com/test1/index.php?cPath=1_4

I've set the 2 graphic card with different vehicle filter.
However when i'm viewing the card in the subcategories and try to run the YMM fiter it's not filtering the product according to the make the model.

Please help!

#22 ONLINE   DunWeb

DunWeb

    The Censored One

  • Members
  • 12,737 posts
  • Real Name:Chris
  • Gender:Male
  • Location:Ontario, Canada

Posted 17 February 2011 - 04:50 AM

Eddie,

It appears you have not installed the contribution correctly.  I am looking at your product_info.php and even the layout is wrong.  Further, the code in application_top.php must be misplaced as it is not filtering products.

As a note, products with multiple year ranges will appear when ANY of the ranged years are selected.



Chris
:|: Was this post helpful ? Click the LIKE THIS button :|:

See my Profile (click here)

#23   kenji815

kenji815
  • Members
  • 17 posts
  • Real Name:Eddie

Posted 17 February 2011 - 07:15 AM

I used the Drop On top File you included in the Contribution and replaced my files and it's still the same problem.
BTW i'm running OSC 2.3.1
application_top
<?php
/*
  $Id$

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2008 osCommerce

  Released under the GNU General Public License
*/

// start the timer for the page parse time log
  define('PAGE_PARSE_START_TIME', microtime());

// set the level of error reporting
  error_reporting(E_ALL & ~E_NOTICE);

// check support for register_globals
  if (function_exists('ini_get') && (ini_get('register_globals') == false) && (PHP_VERSION < 4.3) ) {
	exit('Server Requirement Error: register_globals is disabled in your PHP configuration. This can be enabled in your php.ini configuration file or in the .htaccess file in your catalog directory. Please use PHP 4.3+ if register_globals cannot be enabled on the server.');
  }

// load server configuration parameters
  if (file_exists('includes/local/configure.php')) { // for developers
	include('includes/local/configure.php');
  } else {
	include('includes/configure.php');
  }

  if (strlen(DB_SERVER) < 1) {
	if (is_dir('install')) {
	  header('Location: install/index.php');
	}
  }

// define the project version --- obsolete, now retrieved with tep_get_version()
  define('PROJECT_VERSION', 'osCommerce Online Merchant v2.3.1');

// some code to solve compatibility issues
  require(DIR_WS_FUNCTIONS . 'compatibility.php');

// set the type of request (secure or not)
  $request_type = (getenv('HTTPS') == 'on') ? 'SSL' : 'NONSSL';

// set php_self in the local scope
  $PHP_SELF = (((strlen(ini_get('cgi.fix_pathinfo')) > 0) && ((bool)ini_get('cgi.fix_pathinfo') == false)) || !isset($HTTP_SERVER_VARS['SCRIPT_NAME'])) ? basename($HTTP_SERVER_VARS['PHP_SELF']) : basename($HTTP_SERVER_VARS['SCRIPT_NAME']);

  if ($request_type == 'NONSSL') {
	define('DIR_WS_CATALOG', DIR_WS_HTTP_CATALOG);
  } else {
	define('DIR_WS_CATALOG', DIR_WS_HTTPS_CATALOG);
  }

// include the list of project filenames
  require(DIR_WS_INCLUDES . 'filenames.php');

// include the list of project database tables
  require(DIR_WS_INCLUDES . 'database_tables.php');

// include the database functions
  require(DIR_WS_FUNCTIONS . 'database.php');

// make a connection to the database... now
  tep_db_connect() or die('Unable to connect to database server!');

// set the application parameters
  $configuration_query = tep_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from ' . TABLE_CONFIGURATION);
  while ($configuration = tep_db_fetch_array($configuration_query)) {
	define($configuration['cfgKey'], $configuration['cfgValue']);
  }

// if gzip_compression is enabled, start to buffer the output
  if ( (GZIP_COMPRESSION == 'true') && ($ext_zlib_loaded = extension_loaded('zlib')) && (PHP_VERSION >= '4') ) {
	if (($ini_zlib_output_compression = (int)ini_get('zlib.output_compression')) < 1) {
	  if (PHP_VERSION >= '4.0.4') {
		ob_start('ob_gzhandler');
	  } else {
		include(DIR_WS_FUNCTIONS . 'gzip_compression.php');
		ob_start();
		ob_implicit_flush();
	  }
	} else {
	  ini_set('zlib.output_compression_level', GZIP_LEVEL);
	}
  }

// set the HTTP GET parameters manually if search_engine_friendly_urls is enabled
  if (SEARCH_ENGINE_FRIENDLY_URLS == 'true') {
	if (strlen(getenv('PATH_INFO')) > 1) {
	  $GET_array = array();
	  $PHP_SELF = str_replace(getenv('PATH_INFO'), '', $PHP_SELF);
	  $vars = explode('/', substr(getenv('PATH_INFO'), 1));
	  do_magic_quotes_gpc($vars);
	  for ($i=0, $n=sizeof($vars); $i<$n; $i++) {
		if (strpos($vars[$i], '[]')) {
		  $GET_array[substr($vars[$i], 0, -2)][] = $vars[$i+1];
		} else {
		  $HTTP_GET_VARS[$vars[$i]] = $vars[$i+1];
		}
		$i++;
	  }

	  if (sizeof($GET_array) > 0) {
		while (list($key, $value) = each($GET_array)) {
		  $HTTP_GET_VARS[$key] = $value;
		}
	  }
	}
  }

// define general functions used application-wide
  require(DIR_WS_FUNCTIONS . 'general.php');
  require(DIR_WS_FUNCTIONS . 'html_output.php');

// set the cookie domain
  $cookie_domain = (($request_type == 'NONSSL') ? HTTP_COOKIE_DOMAIN : HTTPS_COOKIE_DOMAIN);
  $cookie_path = (($request_type == 'NONSSL') ? HTTP_COOKIE_PATH : HTTPS_COOKIE_PATH);

// include cache functions if enabled
  if (USE_CACHE == 'true') include(DIR_WS_FUNCTIONS . 'cache.php');

// include shopping cart class
  require(DIR_WS_CLASSES . 'shopping_cart.php');

// include navigation history class
  require(DIR_WS_CLASSES . 'navigation_history.php');

// define how the session functions will be used
  require(DIR_WS_FUNCTIONS . 'sessions.php');

// set the session name and save path
  tep_session_name('osCsid');
  tep_session_save_path(SESSION_WRITE_DIRECTORY);

// set the session cookie parameters
   if (function_exists('session_set_cookie_params')) {
	session_set_cookie_params(0, $cookie_path, $cookie_domain);
  } elseif (function_exists('ini_set')) {
	ini_set('session.cookie_lifetime', '0');
	ini_set('session.cookie_path', $cookie_path);
	ini_set('session.cookie_domain', $cookie_domain);
  }

  @ini_set('session.use_only_cookies', (SESSION_FORCE_COOKIE_USE == 'True') ? 1 : 0);

// set the session ID if it exists
   if (isset($HTTP_POST_VARS[tep_session_name()])) {
	 tep_session_id($HTTP_POST_VARS[tep_session_name()]);
   } elseif ( ($request_type == 'SSL') && isset($HTTP_GET_VARS[tep_session_name()]) ) {
	 tep_session_id($HTTP_GET_VARS[tep_session_name()]);
   }

// start the session
  $session_started = false;
  if (SESSION_FORCE_COOKIE_USE == 'True') {
	tep_setcookie('cookie_test', 'please_accept_for_session', time()+60*60*24*30, $cookie_path, $cookie_domain);

	if (isset($HTTP_COOKIE_VARS['cookie_test'])) {
	  tep_session_start();
	  $session_started = true;
	}
  } elseif (SESSION_BLOCK_SPIDERS == 'True') {
	$user_agent = strtolower(getenv('HTTP_USER_AGENT'));
	$spider_flag = false;

	if (tep_not_null($user_agent)) {
	  $spiders = file(DIR_WS_INCLUDES . 'spiders.txt');

	  for ($i=0, $n=sizeof($spiders); $i<$n; $i++) {
		if (tep_not_null($spiders[$i])) {
		  if (is_integer(strpos($user_agent, trim($spiders[$i])))) {
			$spider_flag = true;
			break;
		  }
		}
	  }
	}

	if ($spider_flag == false) {
	  tep_session_start();
	  $session_started = true;
	}
  } else {
	tep_session_start();
	$session_started = true;
  }

  if ( ($session_started == true) && (PHP_VERSION >= 4.3) && function_exists('ini_get') && (ini_get('register_globals') == false) ) {
	extract($_SESSION, EXTR_OVERWRITE+EXTR_REFS);
  }

// initialize a session token
  if (!tep_session_is_registered('sessiontoken')) {
	$sessiontoken = md5(tep_rand() . tep_rand() . tep_rand() . tep_rand());
	tep_session_register('sessiontoken');
  }

// set SID once, even if empty
  $SID = (defined('SID') ? SID : '');

// verify the ssl_session_id if the feature is enabled
  if ( ($request_type == 'SSL') && (SESSION_CHECK_SSL_SESSION_ID == 'True') && (ENABLE_SSL == true) && ($session_started == true) ) {
	$ssl_session_id = getenv('SSL_SESSION_ID');
	if (!tep_session_is_registered('SSL_SESSION_ID')) {
	  $SESSION_SSL_ID = $ssl_session_id;
	  tep_session_register('SESSION_SSL_ID');
	}

	if ($SESSION_SSL_ID != $ssl_session_id) {
	  tep_session_destroy();
	  tep_redirect(tep_href_link(FILENAME_SSL_CHECK));
	}
  }

// verify the browser user agent if the feature is enabled
  if (SESSION_CHECK_USER_AGENT == 'True') {
	$http_user_agent = getenv('HTTP_USER_AGENT');
	if (!tep_session_is_registered('SESSION_USER_AGENT')) {
	  $SESSION_USER_AGENT = $http_user_agent;
	  tep_session_register('SESSION_USER_AGENT');
	}

	if ($SESSION_USER_AGENT != $http_user_agent) {
	  tep_session_destroy();
	  tep_redirect(tep_href_link(FILENAME_LOGIN));
	}
  }

// verify the IP address if the feature is enabled
  if (SESSION_CHECK_IP_ADDRESS == 'True') {
	$ip_address = tep_get_ip_address();
	if (!tep_session_is_registered('SESSION_IP_ADDRESS')) {
	  $SESSION_IP_ADDRESS = $ip_address;
	  tep_session_register('SESSION_IP_ADDRESS');
	}

	if ($SESSION_IP_ADDRESS != $ip_address) {
	  tep_session_destroy();
	  tep_redirect(tep_href_link(FILENAME_LOGIN));
	}
  }

// create the shopping cart
  if (!tep_session_is_registered('cart') || !is_object($cart)) {
	tep_session_register('cart');
	$cart = new shoppingCart;
  }

// include currencies class and create an instance
  require(DIR_WS_CLASSES . 'currencies.php');
  $currencies = new currencies();

// include the mail classes
  require(DIR_WS_CLASSES . 'mime.php');
  require(DIR_WS_CLASSES . 'email.php');

// set the language
  if (!tep_session_is_registered('language') || isset($HTTP_GET_VARS['language'])) {
	if (!tep_session_is_registered('language')) {
	  tep_session_register('language');
	  tep_session_register('languages_id');
	}

	include(DIR_WS_CLASSES . 'language.php');
	$lng = new language();

	if (isset($HTTP_GET_VARS['language']) && tep_not_null($HTTP_GET_VARS['language'])) {
	  $lng->set_language($HTTP_GET_VARS['language']);
	} else {
	  $lng->get_browser_language();
	}

	$language = $lng->language['directory'];
	$languages_id = $lng->language['id'];
  }

// include the language translations
  require(DIR_WS_LANGUAGES . $language . '.php');

// currency
  if (!tep_session_is_registered('currency') || isset($HTTP_GET_VARS['currency']) || ( (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') && (LANGUAGE_CURRENCY != $currency) ) ) {
	if (!tep_session_is_registered('currency')) tep_session_register('currency');

	if (isset($HTTP_GET_VARS['currency']) && $currencies->is_set($HTTP_GET_VARS['currency'])) {
	  $currency = $HTTP_GET_VARS['currency'];
	} else {
	  $currency = ((USE_DEFAULT_LANGUAGE_CURRENCY == 'true') && $currencies->is_set(LANGUAGE_CURRENCY)) ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY;
	}
  }

// navigation history
  if (!tep_session_is_registered('navigation') || !is_object($navigation)) {
	tep_session_register('navigation');
	$navigation = new navigationHistory;
  }
  $navigation->add_current_page();

// action recorder
  include('includes/classes/action_recorder.php');

// Shopping cart actions
  if (isset($HTTP_GET_VARS['action'])) {
// redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled
	if ($session_started == false) {
	  tep_redirect(tep_href_link(FILENAME_COOKIE_USAGE));
	}

	if (DISPLAY_CART == 'true') {
	  $goto =  FILENAME_SHOPPING_CART;
	  $parameters = array('action', 'cPath', 'products_id', 'pid');
	} else {
	  $goto = basename($PHP_SELF);
	  if ($HTTP_GET_VARS['action'] == 'buy_now') {
		$parameters = array('action', 'pid', 'products_id');
	  } else {
		$parameters = array('action', 'pid');
	  }
	}
	switch ($HTTP_GET_VARS['action']) {
	  // customer wants to update the product quantity in their shopping cart
	  case 'update_product' : for ($i=0, $n=sizeof($HTTP_POST_VARS['products_id']); $i<$n; $i++) {
								if (in_array($HTTP_POST_VARS['products_id'][$i], (is_array($HTTP_POST_VARS['cart_delete']) ? $HTTP_POST_VARS['cart_delete'] : array()))) {
								  $cart->remove($HTTP_POST_VARS['products_id'][$i]);
								} else {
								  $attributes = ($HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]]) ? $HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]] : '';
								  $cart->add_cart($HTTP_POST_VARS['products_id'][$i], $HTTP_POST_VARS['cart_quantity'][$i], $attributes, false);
								}
							  }
							  tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
							  break;
	  // customer adds a product from the products page
	  case 'add_product' :	if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) {
								$attributes = isset($HTTP_POST_VARS['id']) ? $HTTP_POST_VARS['id'] : '';
								$cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $attributes))+1, $attributes);
							  }
							  tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
							  break;
	  // customer removes a product from their shopping cart
	  case 'remove_product' : if (isset($HTTP_GET_VARS['products_id'])) {
								$cart->remove($HTTP_GET_VARS['products_id']);
							  }
							  tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
							  break;
	  // performed by the 'buy now' button in product listings and review page
	  case 'buy_now' :		if (isset($HTTP_GET_VARS['products_id'])) {
								if (tep_has_product_attributes($HTTP_GET_VARS['products_id'])) {
								  tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id']));
								} else {
								  $cart->add_cart($HTTP_GET_VARS['products_id'], $cart->get_quantity($HTTP_GET_VARS['products_id'])+1);
								}
							  }
							  tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
							  break;
	  case 'notify' :		 if (tep_session_is_registered('customer_id')) {
								if (isset($HTTP_GET_VARS['products_id'])) {
								  $notify = $HTTP_GET_VARS['products_id'];
								} elseif (isset($HTTP_GET_VARS['notify'])) {
								  $notify = $HTTP_GET_VARS['notify'];
								} elseif (isset($HTTP_POST_VARS['notify'])) {
								  $notify = $HTTP_POST_VARS['notify'];
								} else {
								  tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'notify'))));
								}
								if (!is_array($notify)) $notify = array($notify);
								for ($i=0, $n=sizeof($notify); $i<$n; $i++) {
								  $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $notify[$i] . "' and customers_id = '" . $customer_id . "'");
								  $check = tep_db_fetch_array($check_query);
								  if ($check['count'] < 1) {
									tep_db_query("insert into " . TABLE_PRODUCTS_NOTIFICATIONS . " (products_id, customers_id, date_added) values ('" . $notify[$i] . "', '" . $customer_id . "', now())");
								  }
								}
								tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'notify'))));
							  } else {
								$navigation->set_snapshot();
								tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
							  }
							  break;
	  case 'notify_remove' :  if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['products_id'])) {
								$check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_id = '" . $customer_id . "'");
								$check = tep_db_fetch_array($check_query);
								if ($check['count'] > 0) {
								  tep_db_query("delete from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_id = '" . $customer_id . "'");
								}
								tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action'))));
							  } else {
								$navigation->set_snapshot();
								tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
							  }
							  break;
	  case 'cust_order' :	 if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['pid'])) {
								if (tep_has_product_attributes($HTTP_GET_VARS['pid'])) {
								  tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['pid']));
								} else {
								  $cart->add_cart($HTTP_GET_VARS['pid'], $cart->get_quantity($HTTP_GET_VARS['pid'])+1);
								}
							  }
							  tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
							  break;
	}
  }

// include the who's online functions
  require(DIR_WS_FUNCTIONS . 'whos_online.php');
  tep_update_whos_online();

// include the password crypto functions
  require(DIR_WS_FUNCTIONS . 'password_funcs.php');

// include validation functions (right now only email address)
  require(DIR_WS_FUNCTIONS . 'validations.php');

// split-page-results
  require(DIR_WS_CLASSES . 'split_page_results.php');

// infobox
  require(DIR_WS_CLASSES . 'boxes.php');

// auto activate and expire banners
  require(DIR_WS_FUNCTIONS . 'banner.php');
  tep_activate_banners();
  tep_expire_banners();

// auto expire special products
  require(DIR_WS_FUNCTIONS . 'specials.php');
  tep_expire_specials();

  require(DIR_WS_CLASSES . 'osc_template.php');
  $oscTemplate = new oscTemplate();

// calculate category path
  if (isset($HTTP_GET_VARS['cPath'])) {
	$cPath = $HTTP_GET_VARS['cPath'];
  } elseif (isset($HTTP_GET_VARS['products_id']) && !isset($HTTP_GET_VARS['manufacturers_id'])) {
	$cPath = tep_get_product_path($HTTP_GET_VARS['products_id']);
  } else {
	$cPath = '';
  }

  if (tep_not_null($cPath)) {
	$cPath_array = tep_parse_category_path($cPath);
	$cPath = implode('_', $cPath_array);
	$current_category_id = $cPath_array[(sizeof($cPath_array)-1)];
  } else {
	$current_category_id = 0;
  }

// include the breadcrumb class and start the breadcrumb trail
  require(DIR_WS_CLASSES . 'breadcrumb.php');
  $breadcrumb = new breadcrumb;

  $breadcrumb->add(HEADER_TITLE_TOP, HTTP_SERVER);
  $breadcrumb->add(HEADER_TITLE_CATALOG, tep_href_link(FILENAME_DEFAULT));

// add category names or the manufacturer name to the breadcrumb trail
  if (isset($cPath_array)) {
	for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) {
	  $categories_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'");
	  if (tep_db_num_rows($categories_query) > 0) {
		$categories = tep_db_fetch_array($categories_query);
		$breadcrumb->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1)))));
	  } else {
		break;
	  }
	}
  } elseif (isset($HTTP_GET_VARS['manufacturers_id'])) {
	$manufacturers_query = tep_db_query("select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");
	if (tep_db_num_rows($manufacturers_query)) {
	  $manufacturers = tep_db_fetch_array($manufacturers_query);
	  $breadcrumb->add($manufacturers['manufacturers_name'], tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id']));
	}
  }

// add the products model to the breadcrumb trail
  if (isset($HTTP_GET_VARS['products_id'])) {
	$model_query = tep_db_query("select products_model from " . TABLE_PRODUCTS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'");
	if (tep_db_num_rows($model_query)) {
	  $model = tep_db_fetch_array($model_query);
	  $breadcrumb->add($model['products_model'], tep_href_link(FILENAME_PRODUCT_INFO, 'cPath=' . $cPath . '&products_id=' . $HTTP_GET_VARS['products_id']));
	}
  }

// initialize the message stack for output messages
  require(DIR_WS_CLASSES . 'message_stack.php');
  $messageStack = new messageStack;

//bof year make model
$expire=time()+60*60*24*90;
$where = "";
$YMM_where = "";

if(isset($_GET['Make'])){
	setcookie("Make_selected", $_GET['Make'], $expire,'/');
	if($_GET['Make'] != 'all')
		$Make_selected_var = $_GET['Make'];
}elseif(isset($_COOKIE['Make_selected']) && $_COOKIE['Make_selected'] != 'all')	
	$Make_selected_var = $_COOKIE['Make_selected'];
	
if(isset($_GET['Model'])){
	setcookie("Model_selected", $_GET['Model'], $expire,'/'); 
	if($_GET['Model'] != 'all')
		$Model_selected_var = $_GET['Model'];
}elseif(isset($_COOKIE['Model_selected']) && $_COOKIE['Model_selected'] != 'all')
	$Model_selected_var = $_COOKIE['Model_selected'];
	
if(isset($_GET['Year'])){
	setcookie("Year_selected", $_GET['Year'], $expire,'/');
	if($_GET['Year'] != 0)
		$Year_selected_var = $_GET['Year'];
}elseif(isset($_COOKIE['Year_selected']) && $_COOKIE['Year_selected'] != 0)
	$Year_selected_var = $_COOKIE['Year_selected'];
	

if(isset($Make_selected_var))
	$where .= " (products_car_make='".$Make_selected_var."' or products_car_make='') ";

if(isset($Model_selected_var))
	$where .= ($where != '' ? ' and ' : '') . " (products_car_model='".$Model_selected_var."' or products_car_model='') ";

if(isset($Year_selected_var))
	$where .= ($where != '' ? ' and ' : '') . " ((products_car_year_bof <= '".$Year_selected_var."' and products_car_year_eof >= '".$Year_selected_var."') or (products_car_year_bof=0  and products_car_year_eof=0)) ";	


if($where != ''){
	
	
	$q = tep_db_query("SELECT DISTINCT products_id FROM products_ymm WHERE " . $where);
	
	$ids = '';	
	
	if(mysql_num_rows($q) > 0){
		
		while ($r = tep_db_fetch_array($q))
			$ids .= ($ids != '' ? ',' : '') . $r['products_id'];
	  
	}
	

	/*$q = tep_db_query("SELECT products_id FROM " . TABLE_PRODUCTS . " WHERE products_id not in (SELECT DISTINCT products_id FROM products_ymm)  and products_status = 1");	
	
	if(mysql_num_rows($q) > 0){
		
		while ($r = tep_db_fetch_array($q))
			$ids .= ($ids != '' ? ',' : '') . $r['products_id'];
	  
	}*/	
	
	
	 $YMM_where .= " p.products_id in ($ids) and ";
	
}
//eof year make model
?>

Product_info.php
<?php
/*
  $Id$

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2010 osCommerce

  Released under the GNU General Public License
*/

  require('includes/application_top.php');

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO);

  $product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
  $product_check = tep_db_fetch_array($product_check_query);

  require(DIR_WS_INCLUDES . 'template_top.php');

  if ($product_check['total'] < 1) {
?>

<div class="contentContainer">
  <div class="contentText">
	<?php echo TEXT_PRODUCT_NOT_FOUND; ?>
  </div>

  <div style="float: right;">
	<?php echo tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', tep_href_link(FILENAME_DEFAULT)); ?>
  </div>
</div>

<?php
  } else {
	$product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
	$product_info = tep_db_fetch_array($product_info_query);

	tep_db_query("update " . TABLE_PRODUCTS_DESCRIPTION . " set products_viewed = products_viewed+1 where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'");

	if ($new_price = tep_get_products_special_price($product_info['products_id'])) {
	  $products_price = '<del>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</del> <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
	} else {
	  $products_price = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id']));
	}

	if (tep_not_null($product_info['products_model'])) {
	  $products_name = $product_info['products_name'] . '<br /><span class="smallText">[' . $product_info['products_model'] . ']</span>';
	} else {
	  $products_name = $product_info['products_name'];
	}
?>

<?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?>

<div>
  <h1 style="float: right;"><?php echo $products_price; ?></h1>
  <h1><?php echo $products_name; ?></h1>
</div>

<div class="contentContainer">
  <div class="contentText">

<?php
	if (tep_not_null($product_info['products_image'])) {
	  $pi_query = tep_db_query("select image, htmlcontent from " . TABLE_PRODUCTS_IMAGES . " where products_id = '" . (int)$product_info['products_id'] . "' order by sort_order");

	  if (tep_db_num_rows($pi_query) > 0) {
?>

	<div id="piGal" style="float: right;">
	  <ul>

<?php
		$pi_counter = 0;
		while ($pi = tep_db_fetch_array($pi_query)) {
		  $pi_counter++;

		  $pi_entry = '		<li><a href="';

		  if (tep_not_null($pi['htmlcontent'])) {
			$pi_entry .= '#piGalimg_' . $pi_counter;
		  } else {
			$pi_entry .= tep_href_link(DIR_WS_IMAGES . $pi['image']);
		  }

		  $pi_entry .= '" target="_blank" rel="fancybox">' . tep_image(DIR_WS_IMAGES . $pi['image']) . '</a>';

		  if (tep_not_null($pi['htmlcontent'])) {
			$pi_entry .= '<div style="display: none;"><div id="piGalimg_' . $pi_counter . '">' . $pi['htmlcontent'] . '</div></div>';
		  }

		  $pi_entry .= '</li>';

		  echo $pi_entry;
		}
?>

	  </ul>
	</div>

<script type="text/javascript">
$('#piGal ul').bxGallery({
  maxwidth: 300,
  maxheight: 200,
  thumbwidth: <?php echo (($pi_counter > 1) ? '75' : '0'); ?>,
  thumbcontainer: 300,
  load_image: 'ext/jquery/bxGallery/spinner.gif'
});
</script>

<?php
	  } else {
?>

	<div id="piGal" style="float: right;">
	  <?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank" rel="fancybox">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name']), null, null, 'hspace="5" vspace="5"') . '</a>'; ?>
	</div>

<?php
	  }
?>

<script type="text/javascript">
$("#piGal a[rel^='fancybox']").fancybox({
  cyclic: true
});
</script>

<?php
	}
?>

<?php echo stripslashes($product_info['products_description']); ?>
<?php
if (YMM_DISPLAY_DATA_ON_PRODUCT_INFO_PAGE == 'Yes'){
?>
	<!-- YMM BOF -->
	<p><?php echo TEXT_PRODUCTS_CAR_HEADING; ?><p>
	<div id="ymm"><ul><li><u><?php echo TEXT_PRODUCTS_CAR_MAKE; ?></u></li>
	<li><u><?php echo TEXT_PRODUCTS_CAR_MODEL; ?></li>
	<li><u><?php echo TEXT_PRODUCTS_CAR_YEARS; ?></u></li>
	</ul></div>
	<?php

	if (isset($HTTP_GET_VARS['products_id']) && $HTTP_GET_VARS['products_id'] != ''){
		
		$q = tep_db_query("select * from products_ymm where products_id = ". (int) $HTTP_GET_VARS['products_id']);
		
		if (tep_db_num_rows($q) > 0) {
			while ($r = tep_db_fetch_array($q)) {
				echo '<div id="ymmopt"><ul><li>' . ($r['products_car_make'] != '' ? $r['products_car_make'] : 'all') . '</li>
				<li>' . ($r['products_car_model'] != '' ? $r['products_car_model'] : 'all') . '</li>
				<li>' . $r['products_car_year_bof'] . ' - ' . $r['products_car_year_eof'].'</li></ul></div>';
				
			}
		} else {
			
			echo '<div>Universal Product</div>';

		}	
		
	}

	?>
	 <div style="clear: both;"></div>
	<!-- YMM EOF -->
<?php 
}
?>

<?php
	$products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'");
	$products_attributes = tep_db_fetch_array($products_attributes_query);
	if ($products_attributes['total'] > 0) {
?>

	<p><?php echo TEXT_PRODUCT_OPTIONS; ?></p>

	<p>
<?php
	  $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name");
	  while ($products_options_name = tep_db_fetch_array($products_options_name_query)) {
		$products_options_array = array();
		$products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'");
		while ($products_options = tep_db_fetch_array($products_options_query)) {
		  $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']);
		  if ($products_options['options_values_price'] != '0') {
			$products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') ';
		  }
		}

		if (is_string($HTTP_GET_VARS['products_id']) && isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) {
		  $selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']];
		} else {
		  $selected_attribute = false;
		}
?>
	  <strong><?php echo $products_options_name['products_options_name'] . ':'; ?></strong><br /><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute); ?><br />
<?php
	  }
?>
	</p>

<?php
	}
?>

	<div style="clear: both;"></div>

<?php
	if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) {
?>

	<p style="text-align: center;"><?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])); ?></p>

<?php
	}
?>

  </div>

<?php
	$reviews_query = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and reviews_status = 1");
	$reviews = tep_db_fetch_array($reviews_query);
?>

  <div class="buttonSet">
	<span class="buttonAction"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_draw_button(IMAGE_BUTTON_IN_CART, 'cart', null, 'primary'); ?></span>

	<?php echo tep_draw_button(IMAGE_BUTTON_REVIEWS . (($reviews['count'] > 0) ? ' (' . $reviews['count'] . ')' : ''), 'comment', tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params())); ?>
  </div>

<?php
	if ((USE_CACHE == 'true') && empty($SID)) {
	  echo tep_cache_also_purchased(3600);
	} else {
	  include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS);
	}
?>

</div>

</form>

<?php
  }

  require(DIR_WS_INCLUDES . 'template_bottom.php');
  require(DIR_WS_INCLUDES . 'application_bottom.php');
?>


#24 ONLINE   DunWeb

DunWeb

    The Censored One

  • Members
  • 12,737 posts
  • Real Name:Chris
  • Gender:Male
  • Location:Ontario, Canada

Posted 17 February 2011 - 07:56 AM

Hi Eddie,

Just to confirm, you are using r01 ?  the latest release ? and drop all files on top ?


Chris
:|: Was this post helpful ? Click the LIKE THIS button :|:

See my Profile (click here)

#25   netsub

netsub
  • Members
  • 3 posts
  • Real Name:Nathan Heliades

Posted 17 February 2011 - 04:13 PM

Hello,
I have the same problem as Eddie

"I've set the 2 graphic card with different vehicle filter.
However when i'm viewing the card in the subcategories and try to run the YMM fiter it's not filtering the product according to the make the model."

The sorting is done correctly but when I click on the category or sub category which contains my article, I see all the items (not just the section that features the make model year previously sought)

#26 ONLINE   DunWeb

DunWeb

    The Censored One

  • Members
  • 12,737 posts
  • Real Name:Chris
  • Gender:Male
  • Location:Ontario, Canada

Posted 17 February 2011 - 04:16 PM

Ok Guys,

I thought I had corrected the child category issue with r01.  However it would appear I have not.  I will make revisions to correct the issue and upload another revision in a couple of days.  Sorry for the confusion.


Chris
:|: Was this post helpful ? Click the LIKE THIS button :|:

See my Profile (click here)

#27   netsub

netsub
  • Members
  • 3 posts
  • Real Name:Nathan Heliades

Posted 17 February 2011 - 05:46 PM

Thank you very much Chris!
The module you're rebuilding is a great thing that many people expect, I searched the Internet for more than 20 days a module that makes almost the same as yours but it is impossible to find!
In other words both Joomla, Magento, CsCart, ZenCart, and many more ...
The problem is just the final sorting by category, after sorting "make model year", and your module can almost do that!
Thank you again Nathan!

#28   netsub

netsub
  • Members
  • 3 posts
  • Real Name:Nathan Heliades

Posted 17 February 2011 - 08:05 PM

I think the problem is that originally the module considers that if all the products have not been published according to make module year, they will be posted as universal products valid for all other year make module ...
The original help filefor osc 2.2 :
NOTE:
If You Have Added A Few data only to items
All The Other items Always Will Be Shown
Because The items Without model / make / year / set are Treated as for all models, all year, all Makes
if you want to select only BMW BMW products and see all products The Other Should Be Set to another car.
So you should "edit all your products to see The Effect

#29   easyq

easyq
  • Members
  • 28 posts
  • Real Name:Edgar Smit
  • Gender:Male
  • Location:The Hague, The Netherlands

Posted 22 February 2011 - 08:46 PM

Not a comment nor a problem but a question for advice here.
i sell doorsills, dashtrimkits, doorskirts and bootstrips all from stainless steel.
That means if 1 car/model would have all of this available there would be max 4 articles available.
For most there is max of 2 different articles for a car/model.

Which of you using this contrib thinks it would be wise to add this, based on usage by customers in a similar number of items available in your shop?
And, because i didnot install it yet, is it easy fillable through an excel sheet or via EP or do i have to add all manually one by one?

Appreciate your feedback on this, in case you wanna look, peek at www.jamello.nl (Dutch market based so only available in Dutch, sorry)
Everything is conditional, you just can't always anticipate the conditions.

#30   wildvettes

wildvettes
  • Members
  • 81 posts
  • Real Name:Damien Routledge

Posted 09 March 2011 - 03:36 AM

Quick question, I'm getting serious formatting issues with my right or left columns after the install. Everything appears to be working normally but it threw the column widths way off on my default theme. Even when I uninstall the module now and try to go back to the default look, my columns are way off. I know this is probably simple formatting, but I'm new to this stuff. How can I make the columns go back to the desired size?

#31   wildvettes

wildvettes
  • Members
  • 81 posts
  • Real Name:Damien Routledge

Posted 09 March 2011 - 04:09 AM

View Postwildvettes, on 09 March 2011 - 03:36 AM, said:

Quick question, I'm getting serious formatting issues with my right or left columns after the install. Everything appears to be working normally but it threw the column widths way off on my default theme. Even when I uninstall the module now and try to go back to the default look, my columns are way off. I know this is probably simple formatting, but I'm new to this stuff. How can I make the columns go back to the desired size?


I just took every single box out and the formatting went back to normal. I figured adding them back in one at a time could identify the problem. It is doing the same thing for one or all boxes, whether left or right side...

#32   wildvettes

wildvettes
  • Members
  • 81 posts
  • Real Name:Damien Routledge

Posted 09 March 2011 - 04:30 AM

View Postwildvettes, on 09 March 2011 - 04:09 AM, said:

I just took every single box out and the formatting went back to normal. I figured adding them back in one at a time could identify the problem. It is doing the same thing for one or all boxes, whether left or right side...

It is doing something with the content that normally shows up in the middle of my two columns as it vanishes and the formatting goes bad after the change to index.php

Any ideas? I will note however that even without this coding it does this same thing when the box is enabled, otherwise everything is as it should be.

I back tracked through the code changes and it doesn't start having the problem until you change the index.php by adding the following

include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING);
?>

</div>

<?php
}
  //bof Year_Make_Model Contribution v2.3.x by Dunweb Designs

elseif($_GET['Make'] || $_GET['Model'] || $_GET['Year']){

$define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,
                         'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,
                         'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER,
                         'PRODUCT_LIST_PRICE' => PRODUCT_LIST_PRICE,
                         'PRODUCT_LIST_QUANTITY' => PRODUCT_LIST_QUANTITY,
                         'PRODUCT_LIST_WEIGHT' => PRODUCT_LIST_WEIGHT,
                         'PRODUCT_LIST_IMAGE' => PRODUCT_LIST_IMAGE,
                         'PRODUCT_LIST_BUY_NOW' => PRODUCT_LIST_BUY_NOW);

    asort($define_list);

    $column_list = array();
    reset($define_list);
    while (list($key, $value) = each($define_list)) {
      if ($value > 0) $column_list[] = $key;
    }

    $select_column_list = '';

    for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
      switch ($column_list[$i]) {
        case 'PRODUCT_LIST_MODEL':
          $select_column_list .= 'p.products_model, ';
          break;
        case 'PRODUCT_LIST_NAME':
          $select_column_list .= 'pd.products_name, ';
          break;
        case 'PRODUCT_LIST_MANUFACTURER':
          $select_column_list .= 'm.manufacturers_name, ';
          break;
        case 'PRODUCT_LIST_QUANTITY':
          $select_column_list .= 'p.products_quantity, ';
          break;
        case 'PRODUCT_LIST_IMAGE':
          $select_column_list .= 'p.products_image, ';
          break;
        case 'PRODUCT_LIST_WEIGHT':
          $select_column_list .= 'p.products_weight, ';
          break;
      }
    }
if($current_category_id){
$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where " . (YMM_FILTER_PRODUCT_LISTING == 'Yes' ? $YMM_where : '') . " p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
}else{
$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where " . (YMM_FILTER_PRODUCT_LISTING == 'Yes' ? $YMM_where : '') . " p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "'";
}

    if ( (!isset($HTTP_GET_VARS['sort'])) || (!preg_match('/^[1-8][ad]$/', $HTTP_GET_VARS['sort'])) || (substr($HTTP_GET_VARS['sort'], 0, 1) > sizeof($column_list)) ) {
      for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
        if ($column_list[$i] == 'PRODUCT_LIST_NAME') {
          $HTTP_GET_VARS['sort'] = $i+1 . 'a';
          $listing_sql .= " order by pd.products_name";
          break;
        }
      }
    } else {
      $sort_col = substr($HTTP_GET_VARS['sort'], 0 , 1);
      $sort_order = substr($HTTP_GET_VARS['sort'], 1);

      switch ($column_list[$sort_col-1]) {
        case 'PRODUCT_LIST_MODEL':
          $listing_sql .= " order by p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
          break;
        case 'PRODUCT_LIST_NAME':
          $listing_sql .= " order by pd.products_name " . ($sort_order == 'd' ? 'desc' : '');
          break;
        case 'PRODUCT_LIST_MANUFACTURER':
          $listing_sql .= " order by m.manufacturers_name " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
          break;
        case 'PRODUCT_LIST_QUANTITY':
          $listing_sql .= " order by p.products_quantity " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
          break;
        case 'PRODUCT_LIST_IMAGE':
          $listing_sql .= " order by pd.products_name";
          break;
        case 'PRODUCT_LIST_WEIGHT':
          $listing_sql .= " order by p.products_weight " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
          break;
        case 'PRODUCT_LIST_PRICE':
          $listing_sql .= " order by final_price " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
          break;
      }
    }

    $catname = HEADING_TITLE;
    if (isset($HTTP_GET_VARS['manufacturers_id'])) {
      $image = tep_db_query("select manufacturers_image, manufacturers_name as catname from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");
      $image = tep_db_fetch_array($image);
      $catname = $image['catname'];
    } elseif ($current_category_id) {
      $image = tep_db_query("select c.categories_image, cd.categories_name as catname from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'");
      $image = tep_db_fetch_array($image);
      $catname = $image['catname'];
    }
?>

<h1><?php echo $catname; ?></h1>

<div class="contentContainer">

<?php


    include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING);
echo '</div>';

//eof Year_Make_Model Contribution v2.3.x by Dunweb Designs
?>

#33   PupStar

PupStar
  • Members
  • 560 posts
  • Real Name:Mark
  • Gender:Male

Posted 09 March 2011 - 08:40 PM

do you have a url so we can see what you mean?

View Postwildvettes, on 09 March 2011 - 04:30 AM, said:

It is doing something with the content that normally shows up in the middle of my two columns as it vanishes and the formatting goes bad after the change to index.php

Any ideas? I will note however that even without this coding it does this same thing when the box is enabled, otherwise everything is as it should be.

I back tracked through the code changes and it doesn't start having the problem until you change the index.php by adding the following

include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING);
?>

</div>

<?php
}
  //bof Year_Make_Model Contribution v2.3.x by Dunweb Designs

elseif($_GET['Make'] || $_GET['Model'] || $_GET['Year']){

$define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,
                         'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,
                         'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER,
                         'PRODUCT_LIST_PRICE' => PRODUCT_LIST_PRICE,
                         'PRODUCT_LIST_QUANTITY' => PRODUCT_LIST_QUANTITY,
                         'PRODUCT_LIST_WEIGHT' => PRODUCT_LIST_WEIGHT,
                         'PRODUCT_LIST_IMAGE' => PRODUCT_LIST_IMAGE,
                         'PRODUCT_LIST_BUY_NOW' => PRODUCT_LIST_BUY_NOW);

    asort($define_list);

    $column_list = array();
    reset($define_list);
    while (list($key, $value) = each($define_list)) {
      if ($value > 0) $column_list[] = $key;
    }

    $select_column_list = '';

    for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
      switch ($column_list[$i]) {
        case 'PRODUCT_LIST_MODEL':
          $select_column_list .= 'p.products_model, ';
          break;
        case 'PRODUCT_LIST_NAME':
          $select_column_list .= 'pd.products_name, ';
          break;
        case 'PRODUCT_LIST_MANUFACTURER':
          $select_column_list .= 'm.manufacturers_name, ';
          break;
        case 'PRODUCT_LIST_QUANTITY':
          $select_column_list .= 'p.products_quantity, ';
          break;
        case 'PRODUCT_LIST_IMAGE':
          $select_column_list .= 'p.products_image, ';
          break;
        case 'PRODUCT_LIST_WEIGHT':
          $select_column_list .= 'p.products_weight, ';
          break;
      }
    }
if($current_category_id){
$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where " . (YMM_FILTER_PRODUCT_LISTING == 'Yes' ? $YMM_where : '') . " p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
}else{
$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where " . (YMM_FILTER_PRODUCT_LISTING == 'Yes' ? $YMM_where : '') . " p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "'";
}

    if ( (!isset($HTTP_GET_VARS['sort'])) || (!preg_match('/^[1-8][ad]$/', $HTTP_GET_VARS['sort'])) || (substr($HTTP_GET_VARS['sort'], 0, 1) > sizeof($column_list)) ) {
      for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
        if ($column_list[$i] == 'PRODUCT_LIST_NAME') {
          $HTTP_GET_VARS['sort'] = $i+1 . 'a';
          $listing_sql .= " order by pd.products_name";
          break;
        }
      }
    } else {
      $sort_col = substr($HTTP_GET_VARS['sort'], 0 , 1);
      $sort_order = substr($HTTP_GET_VARS['sort'], 1);

      switch ($column_list[$sort_col-1]) {
        case 'PRODUCT_LIST_MODEL':
          $listing_sql .= " order by p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
          break;
        case 'PRODUCT_LIST_NAME':
          $listing_sql .= " order by pd.products_name " . ($sort_order == 'd' ? 'desc' : '');
          break;
        case 'PRODUCT_LIST_MANUFACTURER':
          $listing_sql .= " order by m.manufacturers_name " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
          break;
        case 'PRODUCT_LIST_QUANTITY':
          $listing_sql .= " order by p.products_quantity " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
          break;
        case 'PRODUCT_LIST_IMAGE':
          $listing_sql .= " order by pd.products_name";
          break;
        case 'PRODUCT_LIST_WEIGHT':
          $listing_sql .= " order by p.products_weight " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
          break;
        case 'PRODUCT_LIST_PRICE':
          $listing_sql .= " order by final_price " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
          break;
      }
    }

    $catname = HEADING_TITLE;
    if (isset($HTTP_GET_VARS['manufacturers_id'])) {
      $image = tep_db_query("select manufacturers_image, manufacturers_name as catname from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");
      $image = tep_db_fetch_array($image);
      $catname = $image['catname'];
    } elseif ($current_category_id) {
      $image = tep_db_query("select c.categories_image, cd.categories_name as catname from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'");
      $image = tep_db_fetch_array($image);
      $catname = $image['catname'];
    }
?>

<h1><?php echo $catname; ?></h1>

<div class="contentContainer">

<?php


    include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING);
echo '</div>';

//eof Year_Make_Model Contribution v2.3.x by Dunweb Designs
?>


#34   kenkja

kenkja
  • Members
  • 242 posts
  • Real Name:Ken Johnson
  • Gender:Male
  • Location:Uk, Yorkshire

Posted 11 March 2011 - 07:02 AM

I have already installed the various add ons in the Security Forum Post 1, language packs and a payment module.

So I guess I no longer have a clean installation as required by the YMM install guidelines, does this mean I would have to make a new installation to use YMM.

thanks

Ken
Os-commerce v2.3.3
Security Pro v11
Site Monitor
IP Trap
htaccess Protection
Bad Behaviour Block
Year Make Model
Document Manager
X Sell
Star Product
Modular Front Page
Modular Header Tags
Ultimate SEO Urls Pro

#35 ONLINE   DunWeb

DunWeb

    The Censored One

  • Members
  • 12,737 posts
  • Real Name:Chris
  • Gender:Male
  • Location:Ontario, Canada

Posted 11 March 2011 - 08:08 AM

Ken,

Along with the Drop on Top files for vanilla installations, there are manual installation instructions included for modified sites.





Chris
:|: Was this post helpful ? Click the LIKE THIS button :|:

See my Profile (click here)

#36   RMD27

RMD27
  • Members
  • 295 posts
  • Real Name:Ricardo
  • Gender:Male

Posted 11 March 2011 - 11:51 AM

Hello Chris

Maybe it is a backward step for you but I am using 2.2.

I looked at the 2.2 version of YMM and from what I saw you have to enter the data it needs manually.

My question is, instead of YMM having its own table, can it be made so it uses the product description table (and adds its own fields). This way everything can be edited through Easy Populate

With Easy Populate you would not need to put mutiple cars for one part number, you would have one part number and the one car that it fits.

Also with Easy Populate you would no longer need to use anything in the admin for it too work, so you could strip out the admin side of the install

What are thoughts on integrating YMM with Easy Populate?

Edited by RMD27, 11 March 2011 - 11:52 AM.


#37 ONLINE   DunWeb

DunWeb

    The Censored One

  • Members
  • 12,737 posts
  • Real Name:Chris
  • Gender:Male
  • Location:Ontario, Canada

Posted 11 March 2011 - 04:02 PM

Hi Ricardo,


I am sure YMM can be altered to integrate fields into existing tables, but this would require SQL paths to be altered.  It isn't a bad idea, perhaps someone with more time will make a transition version.



Chris
:|: Was this post helpful ? Click the LIKE THIS button :|:

See my Profile (click here)

#38   kenkja

kenkja
  • Members
  • 242 posts
  • Real Name:Ken Johnson
  • Gender:Male
  • Location:Uk, Yorkshire

Posted 12 March 2011 - 07:48 AM

Thank you Chris

My apologies, must have misread the file before

ken
Os-commerce v2.3.3
Security Pro v11
Site Monitor
IP Trap
htaccess Protection
Bad Behaviour Block
Year Make Model
Document Manager
X Sell
Star Product
Modular Front Page
Modular Header Tags
Ultimate SEO Urls Pro

#39   RMD27

RMD27
  • Members
  • 295 posts
  • Real Name:Ricardo
  • Gender:Male

Posted 12 March 2011 - 03:13 PM

View PostDunWeb, on 11 March 2011 - 04:02 PM, said:

Hi Ricardo,


I am sure YMM can be altered to integrate fields into existing tables, but this would require SQL paths to be altered.  It isn't a bad idea, perhaps someone with more time will make a transition version.



Chris

Okay, instead of getting changing the SQL paths,  I was thinking it might be easier to customise EP to work with YMM contribution

If you can bear with me because I don't know code! These are the instructions EP gives to add data to custom fields in the product description

// ******************************************************************
// BEGIN Define Custom Fields for your products database
// ******************************************************************
// the following line is always left as is.
$custom_fields = array();
//
// The following setup will allow you to define any additional 
// field into the "products" and "products_description" tables
// in your shop. If you have  installed a custom contribution
// that adds fields to these tables you may simply and easily add
// them to the EasyPopulate system.
//
// ********************
// ** products table **
// Lets say you have added a field to your "products" table called
// "products_upc". The header name in your import file will be
// called "v_products_upc".  Then below you will change the line
// that looks like this (without the comment double-slash at the beginning):
// $custom_fields[TABLE_PRODUCTS] = array(); // this line is used if you have no custom fields to import/export
//
// TO:
// $custom_fields[TABLE_PRODUCTS] = array( 'products_upc' => 'UPC' );
//
// If you have multiple fields this is what it would look like:
// $custom_fields[TABLE_PRODUCTS] = array( 'products_upc' => 'UPC', 'products_restock_quantity' => 'Restock' );
//
// ********************************
// ** products_description table **
// Lets say you have added a field to your "products_description" table called
// "products_short_description". The header name in your import file will be
// called "v_products_short_description_1" for English, "v_products_short_description_2" for German,
// "v_products_short_description_3" for Spanish. Other languages will vary. Be sure to use the 
// langugage ID of the custom language you installed if it is other then the original
// 3 installed languages of osCommerce. If you are unsure what language ID you need to
// use, do a complete export and examine the file headers EasyPopulate produces.
//
// Then below you will change the line that looks like this (without the comment double-slash at the beginning):
// $custom_fields[TABLE_PRODUCTS_DESCRIPTION] = array(); // this line is used if you have no custom fields to import/export
//
// TO:
// $custom_fields[TABLE_PRODUCTS_DESCRIPTION] = array( 'products_short_description' => 'short' );
//
// If you have multiple fields this is what it would look like:
// $custom_fields[TABLE_PRODUCTS_DESCRIPTION] = array( 'products_short_description' => 'short', 'products_viewed' => 'Viewed' );
//
// the array format is: array( 'table_field_name' => 'Familiar Name' )
// the array key ('table_field_name') is always the exact name of the 
// field in the table. The array value ('Familiar Name') is any text
// name that will be used in the custom EP export download checkbox.
//
// I believe this will only work for text/varchar and numeric field
// types.  If your custom field is a date/time or any other type, you
// may need to incorporate custom code to correctly import your data.
//

$custom_fields[TABLE_PRODUCTS] = array(); // this line is used if you have no custom fields to import/export
$custom_fields[TABLE_PRODUCTS_DESCRIPTION] = array(); // this line is used if you have no custom fields to import/export

//
// FINAL NOTE: this currently only works with the "products" & "products_description" table.
// If it works well and I don't get a plethora of problems reported,
// I may expand it to more tables. Feel free to make requests, but
// as always, only as me free time allows.
//
// ******************************************************************
// END Define Custom Fields for your products database
// ******************************************************************


To use it with YMM, can I change TABLE_PRODUCTS_DESCRIPTION      to   TABLE_TheNameOfTheTableYMMUses

and change 'products_short_description' => 'short'   to   'products_TheNameOfTheFieldYMMUses' => 'YMMfield'

and that is all you need to do as far as populating the database with the data that YMM needs (in principle at least)?[img]http://forums.oscommerce.com/public/style_emoticons/default/huh.gif[/img]

#40   kenkja

kenkja
  • Members
  • 242 posts
  • Real Name:Ken Johnson
  • Gender:Male
  • Location:Uk, Yorkshire

Posted 12 March 2011 - 04:03 PM

Re Part 9B

9.b]
Find:

    include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING);
?>

</div>

<?php
  }

Add after:  etc

//bof Year_Make_Model Contribution v2.3.x by Dunweb Designs

elseif($_GET['Make'] || $_GET['Model'] || $_GET['Year']){

$define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,
                         'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,
                         'PRO etc, etc

I found

include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING);
?>

</div>

<?php
  } else { // default page
?>

So I added the code after } and before else { // default page, then I'm left with a line of code

  else { // default page

which produces an error message

      "Parse error: syntax error, unexpected T_ELSE in /home/public_html/mysite.com/index.php on line 378"

I've added // before it, so it's no longer a command index.php will load, but I don't think that what I'm supposed to be doing, is it ?

Ken
Os-commerce v2.3.3
Security Pro v11
Site Monitor
IP Trap
htaccess Protection
Bad Behaviour Block
Year Make Model
Document Manager
X Sell
Star Product
Modular Front Page
Modular Header Tags
Ultimate SEO Urls Pro