Jump to content
Sign in to follow this  
enigma1

[Contribution] SEO-G

Recommended Posts

Hi to all,

I think SEO-G is a great contrib. I would like to do or rebuild the SEO-G archives by a button. I understand that it's made by exploring the shop (is it true?).

I don't have the knownledge to do this. Are there someone who could help me?

Many thanks.

Michele

Share this post


Link to post
Share on other sites

I just installed SEO-G and I have a small problem in that when I go to add a product to my cart I get "product not found" and the URL is such: revealingthings.com/product_info.php/cPath/25/products_id/77/action/add_product

 

If anyone knows how to correct this or where the problem may lie I would be very appreciative.

Edited by Assailantnyc

Share this post


Link to post
Share on other sites

Help!!

 

After installation of SEO-G i get a product not found when clicking on the title of the product while on the home page, however if you click on the image it goes to the correct product description. if you go to my website www.custom-seatcovers.net and while on the homepage click on the title of the product it doesnt work. any help would be greatly appreciated. Thank you in advance.

Share this post


Link to post
Share on other sites

Ok, I've read all of the documentation for this contribution. I feel ready to install and configure SEO-G. However, I also plan to use oscAffiliate, so I wanted to check in to see if these two will work together ok.

 

Is anyone using both of these at the same time? If so, did you have any significant problems to resolve?

Share this post


Link to post
Share on other sites

can anyone answer a quick one for me regarding this?

 

I noticed that with ultimate SEO, you can type anything before the 'c-1.html' . Eg garden-benches-c-1.html? is the same as 'benches-random-c-1.html' , ie both will go to the page. Obviously this isnt good, so does SEO-G do a similar thing?

Edited by adiwillow

Share this post


Link to post
Share on other sites

Hello,

 

I installed SEO-G successfully, however forgot to set 'true' on 'Prevent Spider Sessions' so got indexed in Google like that:

www.mystore.com/anything.html?osCsid=sdfsf5585b26e475843sA9b

 

So I am wondering, will my new added products will be indexed like that as well as, even I set 'true' on 'Prevent Spider Sessions'?

 

Thanks for help

Edited by subfor

Share this post


Link to post
Share on other sites

subfor: Your newly added products wont have that long tail on the url if you have the prevent spider sessions to true in the future. Your urls will clean themselves up in the indexes eventually.

 

adiwillow: I am not sure what the C-1 is...category? My category pages dont show a c-1. I do have this installed on my personal website, you can see how it works there. I am by no means an expert on how it works though, so I am limited in how I can help.

 

 

I see support for this contrib has fizzled, however, I was looking to see if anyone had used this with the extra info pages mod. I have a site with it and for some reason I just cant seem to configure the g-types for the extra_info_pages.php pages. Any help would be greatly appreciated!

 

Thanks in advance.

Share this post


Link to post
Share on other sites

Hello Folks,

 

i am new to this forum, so greetings to everybody reading this :)

__________________________________________________________________________

I´ve got a problem after installing the SEO-G contrib. Everytime i set the global switch to "true", the boxwidth of my left and right columns change when visiting the Catalog Pages (i guess to default: 125px)

 

Switching it to "false" makes the site appear correctly.

 

Any Ideas which Parameters i´ve to change, or is it an installation-issue ?

 

Thanks for your support.

Edited by MisterVista

Share this post


Link to post
Share on other sites

Posted in General but think this is the correct place!!

 

I have started to install the SEO-G contribution. Can anyone help and suggest why when I ran the SQL statement "seo_g.sql" has given me this error message - Thanks in advance

 

----------------

 

SQL query:

 

CREATE TABLE seo_to_products(

 

seo_types_id int( 11 ) NOT NULL ,

products_id int( 11 ) default NULL ,

seo_name VARCHAR( 255 ) NOT NULL ,

PRIMARY KEY ( seo_types_id, products_id )

) TYPE = MYISAM ;

 

 

 

MySQL said:

 

#1171 - All parts of a PRIMARY KEY must be NOT NULL; If you need NULL in a key, use UNIQUE instead

Share this post


Link to post
Share on other sites

Hi there,

using OSV v2.2 - SEO G 1.13

 

Afte install, my shop is blank.

I HAVE double checked all files for any failures. Everything seems ok

Admin part working fine.

 

.htaccess file also set properly

 

#-MS- SEO-G Added

Options +FollowSymLinks

RewriteEngine On

RewriteBase /shop/

RewriteRule ^(.*).html$ root.php?$1.html&%{QUERY_STRING}

#-MS- SEO-G Added EOM

 

Any hints on where to look for the error?

 

Cheers!

Share this post


Link to post
Share on other sites

hmm... i have modified all files propley and i dont have .htaccess in my main folder so i have created one and im getting internal server error. when i delete .htaccess from main folder and create one in admin im able to see my website but any link i click on it goes off with 404 error. Help its great contribution and i wanna use it :D

Share this post


Link to post
Share on other sites

Just do everything manually. I have the same problem too when I just replaced files, but when I did everything manually it is everything ok.

Share this post


Link to post
Share on other sites
Just do everything manually. I have the same problem too when I just replaced files, but when I did everything manually it is everything ok.

Yes i have edited the manualy :)

 

Here is my .httaccess

# $Id: $
#
# This is used with Apache WebServers
#
# For this to work, you must include the parameter 'Options' to
# the AllowOverride configuration
#
# Example:
#
# <Directory "/usr/local/apache/htdocs">
#   AllowOverride Options
# </Directory>
#
# 'All' with also work. (This configuration is in the
# apache/conf/httpd.conf file)

# The following makes adjustments to the SSL protocol for Internet
# Explorer browsers

#<IfModule mod_setenvif.c>
#  <IfDefine SSL>
#	SetEnvIf User-Agent ".*MSIE.*" \
#			 nokeepalive ssl-unclean-shutdown \
#			 downgrade-1.0 force-response-1.0
#  </IfDefine>
#</IfModule>

# If Search Engine Friendly URLs do not work, try enabling the
# following Apache configuration parameter

# AcceptPathInfo On

# Fix certain PHP values
# (commented out by default to prevent errors occuring on certain
# servers)

# php_value session.use_trans_sid 0
# php_value register_globals 1
#-MS- SEO-G Added
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ $1 [L]
#-MS- SEO-G Added EOM

 

and mine root.php

<?php
/*
//----------------------------------------------------------------------------
// Copyright (c) 2006-2007 Asymmetric Software - Innovation & Excellence
// Author: Mark Samios
// http://www.asymmetrics.com
// SEO-G Root page
// Main handler script
// Includes part of the includes/application_top.php from osCommerce to
// initialize the database.
//----------------------------------------------------------------------------
// Script is intended to be used with:
// osCommerce, Open Source E-Commerce Solutions
// http://www.oscommerce.com
// Copyright (c) 2003 osCommerce
//----------------------------------------------------------------------------
// Released under the GNU General Public License
//----------------------------------------------------------------------------
// MAKE SURE THE FOLLOWING SECTION IS COPIED DIRECTLY FROM YOUR OWN 
// catalog\includes\application_top.php and then set the $g_relpath, $g_server
// variables in this file such that:
//----------------------------------------------------------------------------
 if ($request_type == 'NONSSL') {
define('DIR_WS_CATALOG', DIR_WS_HTTP_CATALOG);
$g_relpath = HTTP_SERVER . DIR_WS_CATALOG;
$g_server = HTTP_SERVER;
 } else {
define('DIR_WS_CATALOG', DIR_WS_HTTPS_CATALOG);
$g_relpath = HTTPS_SERVER . DIR_WS_CATALOG;
$g_server = HTTPS_SERVER;
 }
//----------------------------------------------------------------------------
// Also note the $request_type has to be determined accurately between
// SSL and NON-SSL pages.
// See also documentation for details for this line:
//  $request_type = (getenv('HTTPS') == 'on') ? 'SSL' : 'NONSSL';
//----------------------------------------------------------------------------
*/
//----------------------------------------------------------------------------
//-MS- Beginning of application_top.php section
//----------------------------------------------------------------------------
// 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 if register_globals is enabled.
// since this is a temporary measure this message is hardcoded. The requirement will be removed before 2.2 is finalized.
// >>> BEGIN REGISTER_GLOBALS
//  if (function_exists('ini_get')) {
//	ini_get('register_globals') or 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.');
//  }
// <<< END REGISTER_GLOBALS

// Set the local configuration parameters - mainly for developers
 if (file_exists('includes/local/configure.php')) include('includes/local/configure.php');

// include server parameters
 require('includes/configure.php');

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

// define the project version
 define('PROJECT_VERSION', 'osCommerce 2.2-MS2');

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

// set php_self in the local scope
 if (!isset($PHP_SELF)) $PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF'];

 if ($request_type == 'NONSSL') {
define('DIR_WS_CATALOG', DIR_WS_HTTP_CATALOG);
$g_relpath = HTTP_SERVER . DIR_WS_CATALOG;
$g_server = HTTP_SERVER;
 } else {
define('DIR_WS_CATALOG', DIR_WS_HTTPS_CATALOG);
$g_relpath = HTTPS_SERVER . DIR_WS_CATALOG;
$g_server = HTTPS_SERVER;
 }

// 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');

// customization for the design layout
 define('BOX_WIDTH', 125); // how wide the boxes should be in pixels (default: 125)

// 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']);
 }

//----------------------------------------------------------------------------
//-MS- End of application_top.php section
//----------------------------------------------------------------------------

//----------------------------------------------------------------------------
// SEO-G Section starts here. This part is required for proper operation 
// Do not override the code below
//----------------------------------------------------------------------------
 require(DIR_WS_CLASSES . 'seo_url.php');
 $g_seo_url = new seoURL;
 $osc_url = $osc_params = $osc_parse = '';
 if( $g_seo_url->get_osc_url($g_server . $_SERVER['REQUEST_URI'], $osc_url, $osc_params, $osc_parse) ) {
$PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF'] = $_SERVER['PHP_SELF'] = $_SERVER['SCRIPT_NAME'] = $osc_parse['path'];
if(basename($_SERVER['PHP_SELF']) == 'root.php' ) {
  echo '<b>SEO-G Error</b>: Invalid Self-Request - Check recorded URLs';
  exit();
}
$tmp_array = array();
for($i=0, $j=count($osc_params); $i<$j; $i++ ) {
  $array_equal = explode('=', $osc_params[$i]);
  if( is_array($array_equal) ) {
	if( isset($array_equal[1]) ) {
	  $tmp_array[$array_equal[0]] = $array_equal[1];
	} else {
	  $tmp_array[$array_equal[0]] = '';
	}
  }
}
$tmp_array = array_merge($HTTP_GET_VARS,$tmp_array);
// Synchronize global arrays.
$HTTP_GET_VARS = $_GET = $tmp_array;
unset($tmp_array);
// Synchronize query string variables
$HTTP_SERVER_VARS['QUERY_STRING'] = $_SERVER['QUERY_STRING'] = implode('&',$osc_params);
$g_script = basename($PHP_SELF);
// Signal SEO-G translation.
$g_seo_flag = true;
require(basename($PHP_SELF));
 } elseif( file_exists(basename($osc_parse['path']))) {
$PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF'] = $_SERVER['PHP_SELF'] = $_SERVER['SCRIPT_NAME'] = $osc_parse['path'];
if(basename($_SERVER['PHP_SELF']) == 'root.php' ) {
  echo '<b>SEO-G Error</b>: Invalid Self-Request, passed URI Request: ' . $_SERVER['REQUEST_URI'];
  exit();
}
$g_script = basename($PHP_SELF);
$g_seo_flag = true;
require(basename($osc_parse['path']));
 } else {
// Script not found. Initiate redirection
header("HTTP/1.1 " . SEO_DEFAULT_ERROR_HEADER);
header('Location: ' . $g_relpath . SEO_DEFAULT_ERROR_REDIRECT);
//echo STORE_NAME . ' - Page was moved';
 }
 exit();
?>

and mine aplication_top.php

<?php
/*
 $Id: $

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

 Copyright (c) 2007 osCommerce

 Released under the GNU General Public License
*/
 //-MS- SEO-G Added
 if( !isset($g_seo_flag) || $g_seo_flag !== true) {

// 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.');
 }

// Set the local configuration parameters - mainly for developers
 if (file_exists('includes/local/configure.php')) include('includes/local/configure.php');

// include server parameters
 require('includes/configure.php');

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

// define the project version
 define('PROJECT_VERSION', 'osCommerce Online Merchant v2.2 RC1');

// 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
 if (!isset($PHP_SELF)) $PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF'];

 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');

// customization for the design layout
//  define('BOX_WIDTH', 125);  how wide the boxes should be in pixels (default: 125)

// 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']);
 }
  //-MS- SEO URLs Support Added
require(DIR_WS_CLASSES . 'seo_url.php');
$g_seo_url = new seoURL;
//-MS- SEO URLs Support Added EOM

}
//-MS- SEO-G Added EOM

// 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));
  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');

// check if sessions are supported, otherwise use the php3 compatible session class
 if (!function_exists('session_start')) {
define('PHP_SESSION_NAME', 'osCsid');
define('PHP_SESSION_PATH', $cookie_path);
define('PHP_SESSION_DOMAIN', $cookie_domain);
define('PHP_SESSION_SAVE_PATH', SESSION_WRITE_DIRECTORY);

include(DIR_WS_CLASSES . 'sessions.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);
 }

// 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);
 }

// 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 & fix the cart if necesary
 if (tep_session_is_registered('cart') && is_object($cart)) {
if (PHP_VERSION < 4) {
  $broken_cart = $cart;
  $cart = new shoppingCart;
  $cart->unserialize($broken_cart);
}
 } else {
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') ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY;
}
 }

// navigation history
 if (tep_session_is_registered('navigation')) {
if (PHP_VERSION < 4) {
  $broken_navigation = $navigation;
  $navigation = new navigationHistory;
  $navigation->unserialize($broken_navigation);
}
 } else {
tep_session_register('navigation');
$navigation = new navigationHistory;
 }
 $navigation->add_current_page();

// 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 {
							  if (PHP_VERSION < 4) {
								// if PHP3, make correction for lack of multidimensional array.
								reset($HTTP_POST_VARS);
								while (list($key, $value) = each($HTTP_POST_VARS)) {
								  if (is_array($value)) {
									while (list($key2, $value2) = each($value)) {
									  if (ereg ("(.*)\]\[(.*)", $key2, $var)) {
										$id2[$var[1]][$var[2]] = $value2;
									  }
									}
								  }
								}
								$attributes = ($id2[$HTTP_POST_VARS['products_id'][$i]]) ? $id2[$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'])) {
							$cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $HTTP_POST_VARS['id']))+1, $HTTP_POST_VARS['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();

// 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;

// set which precautions should be checked
 define('WARN_INSTALL_EXISTENCE', 'true');
 define('WARN_CONFIG_WRITEABLE', 'true');
 define('WARN_SESSION_DIRECTORY_NOT_WRITEABLE', 'true');
 define('WARN_SESSION_AUTO_START', 'true');
 define('WARN_DOWNLOAD_DIRECTORY_NOT_READABLE', 'true');
?>

Edited by viperek

Share this post


Link to post
Share on other sites

Help!! - I'm still struggling with this if anyone can help - thanks

 

 

SQL query:

 

CREATE TABLE seo_to_products(

 

seo_types_id int( 11 ) NOT NULL ,

products_id int( 11 ) default NULL ,

seo_name VARCHAR( 255 ) NOT NULL ,

PRIMARY KEY ( seo_types_id, products_id )

) TYPE = MYISAM ;

 

 

 

MySQL said:

 

#1171 - All parts of a PRIMARY KEY must be NOT NULL; If you need NULL in a key, use UNIQUE instead

Share this post


Link to post
Share on other sites

I now have my tables set up, but am getting the following message in Admin when accessing "G-Types" ?

 

1146 - Table 'c#######.TABLE_SEO_TYPES' doesn't exist

 

select at.* from TABLE_SEO_TYPES at order by at.sort_order

 

[TEP STOP]

 

 

I get similar in each of the other options too? I guess I must be setting something up wrong, can anyone help me learn!!???

 

Thanks

Edited by stevespida

Share this post


Link to post
Share on other sites
Anyone able to help??

 

You need to upload :

 

admin/includes/database_tables.php

 

It holds the defines files :o)

 

//-MS- SEO-G Added

define('TABLE_SEO_URL', 'seo_url');

define('TABLE_SEO_REDIRECT', 'seo_redirect');

define('TABLE_SEO_EXCLUDE', 'seo_exclude');

define('TABLE_SEO_FREQUENCY', 'seo_frequency');

define('TABLE_SEO_TYPES', 'seo_types');

define('TABLE_SEO_TO_CATEGORIES','seo_to_categories');

define('TABLE_SEO_TO_PRODUCTS','seo_to_products');

define('TABLE_SEO_TO_MANUFACTURERS','seo_to_manufacturers');

//-MS- SEO-G Added EOM

 

//-MS- SEO-G Support for Articles Manager

define('TABLE_SEO_TO_TOPICS','seo_to_topics');

define('TABLE_SEO_TO_ARTICLES','seo_to_articles');

define('TABLE_SEO_TO_AUTHORS','seo_to_authors');

//-MS- SEO-G Support for Articles Manager EOM

 

//-MS- SEO-G Support for Information Pages Unlimited

define('TABLE_SEO_TO_INFORMATION','seo_to_information');

//-MS- SEO-G Support for Information Pages Unlimited EOM

 

//-MS- SEO-G Support for Links Manager

define('TABLE_SEO_TO_LINKS','seo_to_links');

//-MS- SEO-G Support for Links Manager EOM

Share this post


Link to post
Share on other sites

I was wondering if there is an EASY way to deal with a nonstandard osc parameter. I have a store that has a contrib that passes a parameter to the product_info page. it's a simple 1 or blank parameter, and if I can help it I'd really like to avoid having to digest how an entire class works just to accomidate this parameter. It doesn't have any db presence, and shouldn't be anything too complicated, I'd just like for it to rewrite the url without this parameter in it if possible. Any help would be greatly appreciated.

Share this post


Link to post
Share on other sites

Hi, i've installed seo-g and everything went ok after a few problems the only issue i'm having now is I have another contribution installed ( Pop up light box for images ) when I set SEO-G to true pop up light box wont load the pictures it still brings up the box but the picture never loads.

 

Any ideas or tips ?

 

Cheers :)

Share this post


Link to post
Share on other sites

Is there any way to use "PRODUCTS_MODEL" instead of "PRODUCTS_ID" in the "SEO_TO_PRODUCTS" table?

 

Basically, have the SEO-G contribution redirect to products using "products model #" rather than "products id #"?

 

I'll be searching through the code but it would be great if someone could point me in the right direction.

 

Thanks in advance for your help.

Share this post


Link to post
Share on other sites
Is there any way to use "PRODUCTS_MODEL" instead of "PRODUCTS_ID" in the "SEO_TO_PRODUCTS" table?

 

Basically, have the SEO-G contribution redirect to products using "products model #" rather than "products id #"?

 

I'll be searching through the code but it would be great if someone could point me in the right direction.

 

Thanks in advance for your help.

 

I can't tell you exatly what to do, I've just installed it and I'm not really a programmer but it would seem that the file you are looking for is admin/includes/classes/seo_products

Share this post


Link to post
Share on other sites

I've just installed this great contribution and it is really great. I did a manual install and haven't had any problems what so ever. I used the version 1.2 just followed the instructions.

 

So thank you Mark Samios for your time, effort and "sharing spirit" it's really appreciated.

 

Best regards

Kennith

Share this post


Link to post
Share on other sites

Anyone know if there is a way to have SEO-G:

 

1. Omit Specific Words from the URL?

 

2. Set a Maximum URL Character Length?

 

 

Thanks guys.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×