wild.lucifero Posted January 1, 2008 Share Posted January 1, 2008 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 Quote Link to comment Share on other sites More sharing options...
Assailantnyc Posted January 3, 2008 Share Posted January 3, 2008 (edited) 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 January 3, 2008 by Assailantnyc Quote Link to comment Share on other sites More sharing options...
doyboy01 Posted January 6, 2008 Share Posted January 6, 2008 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. Quote Link to comment Share on other sites More sharing options...
BullionFever Posted January 8, 2008 Share Posted January 8, 2008 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? Quote Link to comment Share on other sites More sharing options...
adiwillow Posted January 8, 2008 Share Posted January 8, 2008 (edited) 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 January 8, 2008 by adiwillow Quote Link to comment Share on other sites More sharing options...
BullionFever Posted January 10, 2008 Share Posted January 10, 2008 (edited) Edited January 10, 2008 by BullionFever Quote Link to comment Share on other sites More sharing options...
subfor Posted January 12, 2008 Share Posted January 12, 2008 (edited) 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 January 12, 2008 by subfor Quote Link to comment Share on other sites More sharing options...
Rachael w. Posted January 13, 2008 Share Posted January 13, 2008 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. Quote Link to comment Share on other sites More sharing options...
Guest Posted January 14, 2008 Share Posted January 14, 2008 (edited) 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 January 14, 2008 by MisterVista Quote Link to comment Share on other sites More sharing options...
stevespida Posted January 15, 2008 Share Posted January 15, 2008 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 Quote Link to comment Share on other sites More sharing options...
bergmann Posted January 15, 2008 Share Posted January 15, 2008 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! Quote Link to comment Share on other sites More sharing options...
viperek Posted January 15, 2008 Share Posted January 15, 2008 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 Quote Link to comment Share on other sites More sharing options...
subfor Posted January 15, 2008 Share Posted January 15, 2008 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. Quote Link to comment Share on other sites More sharing options...
viperek Posted January 15, 2008 Share Posted January 15, 2008 (edited) 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 January 15, 2008 by viperek Quote Link to comment Share on other sites More sharing options...
stevespida Posted January 16, 2008 Share Posted January 16, 2008 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 Quote Link to comment Share on other sites More sharing options...
stevespida Posted January 21, 2008 Share Posted January 21, 2008 (edited) 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 January 21, 2008 by stevespida Quote Link to comment Share on other sites More sharing options...
stevespida Posted January 22, 2008 Share Posted January 22, 2008 Anyone able to help?? Quote Link to comment Share on other sites More sharing options...
allan_h Posted January 22, 2008 Share Posted January 22, 2008 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 Quote Link to comment Share on other sites More sharing options...
stevespida Posted January 22, 2008 Share Posted January 22, 2008 I do have that loaded allan_h? Still confused Quote Link to comment Share on other sites More sharing options...
Guest Posted January 23, 2008 Share Posted January 23, 2008 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. Quote Link to comment Share on other sites More sharing options...
wargaming Posted January 26, 2008 Share Posted January 26, 2008 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 :) Quote Link to comment Share on other sites More sharing options...
shebal Posted January 28, 2008 Share Posted January 28, 2008 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. Quote Link to comment Share on other sites More sharing options...
Kennith Posted January 30, 2008 Share Posted January 30, 2008 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 Quote Link to comment Share on other sites More sharing options...
Kennith Posted January 30, 2008 Share Posted January 30, 2008 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 Quote Link to comment Share on other sites More sharing options...
shebal Posted January 30, 2008 Share Posted January 30, 2008 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.