Guest Posted January 27, 2005 Share Posted January 27, 2005 Hello, I have just installed seo urls and im getting an error, Parse error: parse error, unexpected '}' in /home/electron/public_html/includes/functions/html_output.php on line 141 I have tried everything I can think of to fix this, there are no spaces at the beginning or the end of the file, is there anything else I can try, Thanks Dan Quote Link to comment Share on other sites More sharing options...
Guest Posted January 27, 2005 Share Posted January 27, 2005 Please paste lines 90 - 130 from your html_output.php file... Bobby Quote Link to comment Share on other sites More sharing options...
Brandi Lee Posted January 28, 2005 Share Posted January 28, 2005 (edited) I hope you're not tired of parse error questions, but I read this entire thead and still cant find the problem. Here is my parse error: Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /home/hotshop/public_html/shop/includes/functions/html_output.php on line 452 If your need to post the code, I can. The file is too big to post in it's entirety. Thanks -b Edited January 28, 2005 by Brandi Lee Quote Link to comment Share on other sites More sharing options...
Guest Posted January 28, 2005 Share Posted January 28, 2005 Most likely the parse errors are mistakes while cut-n-pasting the code modifications. If line 452 is at the bottom of the file then you made a mistake higher up. Bobby Quote Link to comment Share on other sites More sharing options...
Brandi Lee Posted January 28, 2005 Share Posted January 28, 2005 Yeah, I found it. Got it to load my pages, but I do not see the url's being generated. they still look like this: http://www.hotthreads.com/shop/index.php?cPath=36 Quote Link to comment Share on other sites More sharing options...
Brandi Lee Posted January 28, 2005 Share Posted January 28, 2005 Ok. It is magically working. Awesome contribution. Now I just need to find a decent thumbnailer. Thanks! -b Quote Link to comment Share on other sites More sharing options...
richandzhaoyan Posted January 28, 2005 Share Posted January 28, 2005 Hi Bobby, Firstly, thanks again for what is now already proving to be a great contribution. Exactly what I was after, product/category names in the URL with an easy install and no great impact on the way osC operates. The results are are almost instantly noticeable and one small mod lifts the SEO for every page - in my case 3000+ products and rising rapidly! I would just like to ask a couple of questions about the page rank/duplicate content/original page url situation. As my site has been fully indexed before fitting this contribution the top categories have a page rank of 4, the sub cats 3 and most products 2. Obviously I would like this page rank to cross over to the new urls and I am guessing this will happen in time anyhow but, more importantly, what is the implication of having duplicate urls? I believe you mentioned earlier in the thread that this is something you are looking at but can you explain in reasonably plain english what the concerns/effects of having to seperate urls may be. Obviously I am a bit concerned that the duplicate content problem may render my whole site to be universally dumped by google!! Are my concerns misplaced? Can you offer any hope? Going on the current improvement in rankings, particularly with msn (which have been awsome) I certainly want to stick with this contribution, Thanks again, Rich Quote Only Dead Fish Go With The Flow...... Link to comment Share on other sites More sharing options...
ChrisW123 Posted January 28, 2005 Share Posted January 28, 2005 Thanks for the great contribution Bobby! After installing and working out a few problems (my mistakes) everything seems to work fine. I'll watch for any SERP result changes over the next few weeks. I've read several articles stating how "keywords" in your webpage names can make a difference so I'm looking forward to that number 1 position pretty soon. :D Quote Link to comment Share on other sites More sharing options...
Guest Posted January 29, 2005 Share Posted January 29, 2005 ...As my site has been fully indexed before fitting this contribution the top categories have a page rank of 4, the sub cats 3 and most products 2. Obviously I would like this page rank to cross over to the new urls and I am guessing this will happen in time anyhow but, more importantly, what is the implication of having duplicate urls? I believe you mentioned earlier in the thread that this is something you are looking at but can you explain in reasonably plain english what the concerns/effects of having to seperate urls may be. Obviously I am a bit concerned that the duplicate content problem may render my whole site to be universally dumped by google!! Are my concerns misplaced? Can you offer any hope? Going on the current improvement in rankings, particularly with msn (which have been awsome) I certainly want to stick with this contribution, Thanks again, Rich <{POST_SNAPBACK}> It seems a lot of people have misconceptions about what exactly it means by "duplicate content" and of course the ramifications of it. Let me try and give a nutshell explanation: It is well understood how the Google algo handles those pages tagged as duplicate content. Let's say there are 10 pages across the internet as having duplicate content. Do all 10 pages get dropped? Do all 10 SITES get dropped? The answer to both questions is NO. Google will drop the lowest pages with respect to page rank and keep the highest (assuming the highest PR must be the original). This has interesting possibilities if you use blackhat SEO tactics. For example, let's say you are an unscrupulous webmaster and want to knock a competitors page out of the index. Further, let's say that your page has a slightly higher page rank. The quick and dirty answer is to duplicate their content with various methods. Over time their page will get dropped and yours will climb to the top (since your page has higher PR). As a case in point read up on the Nigritude Ultramarine Experiment that was conducted a while back. Very interesting reading! :) So, to answer your question specifically: if your site has 2 pages and is tagged with duplicate content you still win (since both pages belong to your site). The correct method is to use 301 redirects to preserve page rank but reportedly it may take up to a year before one or the other page is dropped. Hence, we can develop the contribution for sometime before it becomes absolutely critical that I code a redirect system. I would rather make sure the code is solid before introducing more code...it makes the debugging so much easier. Hope that was helpful... Thanks for the great contribution Bobby! After installing and working out a few problems (my mistakes) everything seems to work fine. I'll watch for any SERP result changes over the next few weeks. I've read several articles stating how "keywords" in your webpage names can make a difference so I'm looking forward to that number 1 position pretty soon. :D <{POST_SNAPBACK}> Enjoy! Bobby Quote Link to comment Share on other sites More sharing options...
richandzhaoyan Posted January 29, 2005 Share Posted January 29, 2005 Hope that was helpful... Very much so - I appreciate the time taken for the informative reply and it is very pleasing to know I can continue to use this contribution with no worries! :D Cheer, Rich Quote Only Dead Fish Go With The Flow...... Link to comment Share on other sites More sharing options...
_g_ Posted January 29, 2005 Share Posted January 29, 2005 It should be deleted every time you update a product or category... Bobby <{POST_SNAPBACK}> It didn't, I am using the contrib which includes a different title, meta description and keywords. I hope I didn't miss anything during instalation. Thanks Quote Link to comment Share on other sites More sharing options...
Sincraft Posted January 29, 2005 Share Posted January 29, 2005 Anyone know how to get this contrib to work with the Extra Boxes contrib? When you click on the links in extra boxes it refers back to the old php system. Any help or pointing in the right direction and maybe I can find this myself and resolve it. S Quote Link to comment Share on other sites More sharing options...
Guest Posted January 29, 2005 Share Posted January 29, 2005 It didn't, I am using the contrib which includes a different title, meta description and keywords. I hope I didn't miss anything during instalation. Thanks <{POST_SNAPBACK}> I'm working on a new cache system that will make file based caching obsolete (hopefully). Give me a little bit and I'll release the new contribution and then update the Ultimate SEO URLs contribution to use it. Anyone know how to get this contrib to work with the Extra Boxes contrib? When you click on the links in extra boxes it refers back to the old php system. Any help or pointing in the right direction and maybe I can find this myself and resolve it. S <{POST_SNAPBACK}> There are 2 requirements for an URL to be transformed: 1. The link constructor goes through tep_href_link(). If you have them hardcoded it will not transform them. 2. The link must be pointing to a product or category. If it points to contact_us.php it will not be transformed. Bobby Quote Link to comment Share on other sites More sharing options...
mujina Posted January 29, 2005 Share Posted January 29, 2005 (edited) Hello Chemo, I had some problem with cname & pname contribution while adding new products so I've decided to install your new contribution. I've followed the instructions but this error message has appeared, could you help me I do feel lost! Warning: fopen(/catalog/includes/seo/seo_english.cache): failed to open stream: No such file or directory in c:\program files\easyphp1-7\www\catalog\includes\seo_cache.php on line 199 Warning: fwrite(): supplied argument is not a valid stream resource in c:\program files\easyphp1-7\www\catalog\includes\seo_cache.php on line 200 Warning: fclose(): supplied argument is not a valid stream resource in c:\program files\easyphp1-7\www\catalog\includes\seo_cache.php on line 201 Warning: main(/catalog/includes/seo/seo_english.cache): failed to open stream: No such file or directory in c:\program files\easyphp1-7\www\catalog\includes\seo_cache.php on line 204 Warning: main(): Failed opening '/catalog/includes/seo/seo_english.cache' for inclusion (include_path='.;C:\Program Files\EasyPHP1-7\php\pear\') in c:\program files\easyphp1-7\www\catalog\includes\seo_cache.php on line 204 My settings : localhost (127.0.0.1) MySQL 4.0.15-max-debug Apache/1.3.27 (Win32) PHP/4.3.8 PHP version : 4.3.8 (Zend : 1.3.0) The file I use for seo cache is located in 127.0.0.1/catalog/includes/seo Edited January 29, 2005 by mujina Quote OSC2.2 Link to comment Share on other sites More sharing options...
Guest Posted January 29, 2005 Share Posted January 29, 2005 Give me a little bit and after I release the new cache class I'm coding I'll upgrade the contribution to use database cache instead of filesystem cache... Bobby Quote Link to comment Share on other sites More sharing options...
mujina Posted January 29, 2005 Share Posted January 29, 2005 Give me a little bit and after I release the new cache class I'm coding I'll upgrade the contribution to use database cache instead of filesystem cache... Bobby <{POST_SNAPBACK}> Alright! Thanks for your reply! Quote OSC2.2 Link to comment Share on other sites More sharing options...
_g_ Posted January 29, 2005 Share Posted January 29, 2005 I'm working on a new cache system that will make file based caching obsolete (hopefully). Give me a little bit and I'll release the new contribution and then update the Ultimate SEO URLs contribution to use it. There are 2 requirements for an URL to be transformed: 1. The link constructor goes through tep_href_link(). If you have them hardcoded it will not transform them. 2. The link must be pointing to a product or category. If it points to contact_us.php it will not be transformed. Bobby <{POST_SNAPBACK}> Thanks for the reply. Take your time. I can just mannually delete the cache file till then :) Quote Link to comment Share on other sites More sharing options...
Guest Posted January 29, 2005 Share Posted January 29, 2005 Hi When I add the code the the htaccess file I get an internal server error when I try to log in!! Any ideas? Quote Link to comment Share on other sites More sharing options...
mujina Posted January 29, 2005 Share Posted January 29, 2005 Chemo, I've understood how it works for the cache file & path. Now it's ok when I use cname option. I have a problem with Rewrite option : and as scott (Windows) when I add the code the the htaccess file I also get an internal server error . But it's not that important at the moment. Thanks for your work!!! Your contribution is awesome!!!!! Quote OSC2.2 Link to comment Share on other sites More sharing options...
Guest Posted January 29, 2005 Share Posted January 29, 2005 Chemo, I've understood how it works for the cache file & path. Now it's ok when I use cname option. I have a problem with Rewrite option : and as scott (Windows) when I add the code the the htaccess file I also get an internal server error . But it's not that important at the moment. Thanks for your work!!! Your contribution is awesome!!!!! <{POST_SNAPBACK}> Your install works without changes to the htaccess file? Quote Link to comment Share on other sites More sharing options...
mujina Posted January 29, 2005 Share Posted January 29, 2005 Your install works without changes to the htaccess file? <{POST_SNAPBACK}> Exactly, I've skipped this modification and it works well except for the rewrite option. Quote OSC2.2 Link to comment Share on other sites More sharing options...
Guest Posted January 30, 2005 Share Posted January 30, 2005 If you have troubles with the htaccess just skip it and use the cName option. However, the rewrite is a more powerful and spider friendly option. For those that are still following along after 12 pages I have just released the cache base class. I'll be uploading a new version of Ultimate SEO URLs to work from the database cache and move away from filesystem cache. The majority of support requests have been with filesystem path related problems and this will eliminate them completely. Bobby Quote Link to comment Share on other sites More sharing options...
abz786 Posted January 30, 2005 Share Posted January 30, 2005 Hi Bobby, I've just installed this contribution, worked first time. Excellent work, thanks. I also have 'product extra fields v1.3c' contribution installed on my system and there appears to be a conflict with your Ultimate SEO URLS contribution. Basically, when I enable your contribution via the admin screen, my product extra fields disappear. When I disable it, they're visible again. I'm using the Cname method. This leads me to my second question. When I select the rewrite method, i get an error message 'this URL cannot be found on this server. I'm using apache. Any thoughts? Quote Link to comment Share on other sites More sharing options...
abz786 Posted January 30, 2005 Share Posted January 30, 2005 OK, I fixed the problem of errors when I select the rewrite method and this in turn fixed the problem of my 'product extra fields' disappearing. My .htaccess file was incorrect. I should have selected the bit of code if your store is in the root directory but I selected the code for the 'folder' option (from the installation instructions). All fixed and working brilliantly. Thanks Quote Link to comment Share on other sites More sharing options...
royalfunk Posted January 30, 2005 Share Posted January 30, 2005 I just installed this Contribution and all seemed to go well except for the application_top.php file. For some reason I am getting an "unexpected {" error for that file. It says the error is at line 435, but that doesn't seem right to me. Although this is a heavily modified file, could someone please tell me where the error is in this application_top.php code? We would really appreciate it. Thanks!!!! <?php /* $Id: application_top.php,v 1.280 2003/07/12 09:38:07 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License */ // recently viewed contribution code mt_srand ((double) microtime() * 1000000); $rand_num = mt_rand(14568, 96587); //these numbers are arbitrary if (!($HTTP_COOKIE_VARS['prod_view'])) { setcookie('prod_view', $rand_num, time()+14400); } // 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. if (function_exists('ini_get')) { ini_get('register_globals') or exit('FATAL ERROR: register_globals is disabled in php.ini, please enable it!'); } // 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); } 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']); } // 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'); require(DIR_WS_MODULES . 'payment/paypal/classes/osC/osC.class.php'); // include navigation history class require(DIR_WS_CLASSES . 'navigation_history.php'); // some code to solve compatibility issues require(DIR_WS_FUNCTIONS . 'compatibility.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(); // Ad Tracker Begin - ADDED BY BENI //user_tracking modications if (!$referer_url) { if ($HTTP_SERVER_VARS['HTTP_REFERER']) { $referer_url = $HTTP_SERVER_VARS['HTTP_REFERER']; session_register('referer_url'); } } //user_ad_tracker modification if ($ad) { $advertiser = $_GET["ad"]; session_register('advertiser'); } // Ad Tracker End - ADDED BY BENI $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; } // 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; } PayPal_osC::check_order_status(true); // 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($HTTP_GET_VARS['language']); if (!isset($HTTP_GET_VARS['language'])) $lng->get_browser_language(); $language = $lng->language['directory']; $languages_id = $lng->language['id']; // Visitors Start $b_lang = getenv('HTTP_ACCEPT_LANGUAGE'); $referer = getenv('HTTP_REFERER'); if ($referer == '') { $referer = 'direct'; } $uri = getenv('REQUEST_URI'); if ( function_exists('tep_get_ip_address') ) { $b_ip = tep_get_ip_address(); } else { $b_ip = getenv('REMOTE_ADDR'); } if ($b_lang == '') { $b_lang = 'robot'; } if ($customer_id) { $log_id = $customer_id; }else{ $log_id = 0; } $b_count = '1'; $ip_count = tep_db_query("select counter FROM " . TABLE_VISITORS . " where browser_ip = '" . $b_ip . "' AND browser_language = '" . $b_lang . "' AND to_days(now()) - to_days(date) < 1"); if (!tep_db_num_rows($ip_count)) { tep_db_query("insert into " . TABLE_VISITORS . " (date,customers_id,counter,browser_ip,browser_language,language,referer,uri) values (now(),'".$log_id."','".$b_count."','".$b_ip."','".$b_lang."','".$language."','".$referer."','".$uri."')"); } else { $ip_values = tep_db_fetch_array($ip_count); $b_count = ($ip_values['counter'] + 1); tep_db_query("update " . TABLE_VISITORS . " set counter = '" . $b_count . "', date = now() where browser_ip = '" . $b_ip . "' AND browser_language = '" . $b_lang . "' AND to_days(now()) - to_days(date) < 1"); } // Visitors End } // include the language translations require(DIR_WS_LANGUAGES . $language . '.php'); # include the cName and pName cache file include('includes/seo_cache.php'); if (isset($HTTP_GET_VARS['cName']) && defined(urldecode($HTTP_GET_VARS['cName']))) { $cPath = str_replace('cPath=', '', constant(urldecode($HTTP_GET_VARS['cName']))); $HTTP_GET_VARS['cPath'] = $cPath; } if (isset($HTTP_GET_VARS['pName']) && defined(urldecode($HTTP_GET_VARS['pName']))) { $pid = str_replace('products_id=', '', constant(urldecode($HTTP_GET_VARS['pName']))); $HTTP_GET_VARS['products_id'] = (int)$pid; } // manufacturer addition by WebPixie if (isset($HTTP_GET_VARS['mName']) && defined(urldecode($HTTP_GET_VARS['mName']))) { $manufacturers_id = str_replace('manufacturers_id=', '', constant(urldecode($HTTP_GET_VARS['mName']))); $HTTP_GET_VARS['manufacturers_id'] = (int)$manufacturers_id; } // 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'])) { if (!$currency = tep_currency_exists($HTTP_GET_VARS['currency'])) $currency = (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') ? LANGUAGE_CURRENCY : DEFAULT_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', 'cName', 'pName'); } else { $goto = basename($PHP_SELF); if ($HTTP_GET_VARS['action'] == 'buy_now') { $parameters = array('action', 'pid', 'products_id', 'pName'); } 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'])) { //++++ QT Pro: Begin Changed code $attributes=array(); if (isset($HTTP_POST_VARS['attrcomb']) && (preg_match("/^\d{1,10}-\d{1,10}(,\d{1,10}-\d{1,10})*$/",$HTTP_POST_VARS['attrcomb']))) { $attrlist=explode(',',$HTTP_POST_VARS['attrcomb']); foreach ($attrlist as $attr) { list($oid, $oval)=explode('-',$attr); if (is_numeric($oid) && $oid==(int)$oid && is_numeric($oval) && $oval==(int)$oval) $attributes[$oid]=$oval; } } if (isset($HTTP_POST_VARS['id']) && is_array($HTTP_POST_VARS['id'])) { foreach ($HTTP_POST_VARS['id'] as $key=>$val) { if (is_numeric($key) && $key==(int)$key && is_numeric($val) && $val==(int)$val) $attributes=$attributes + $HTTP_POST_VARS['id']; } } $cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $attributes))+$quantity, $attributes); //++++ QT Pro: End Changed Code } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; // Modificacion Wishlist Checkboxes case 'add_products_wishlist' : if (isset($HTTP_POST_VARS['add_wishprod'])) { if ($HTTP_POST_VARS['borrar'] == 0) { foreach ($HTTP_POST_VARS['add_wishprod'] as $value) { if (ereg('^[0-9]+$', $value)) { tep_db_query("delete from " . TABLE_WISHLIST . " where products_id = $value and customers_id = '" . $customer_id . "'"); $cart->add_cart($value, $cart->get_quantity(tep_get_uprid($value, $HTTP_POST_VARS['id']))+1, $HTTP_POST_VARS['id']); } } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); } if ($HTTP_POST_VARS['borrar'] == 1) { foreach ($HTTP_POST_VARS['add_wishprod'] as $value) { if (ereg('^[0-9]+$', $value)) { tep_db_query("delete from " . TABLE_WISHLIST . " where products_id = $value and customers_id = '" . $customer_id . "'"); } } tep_redirect(tep_href_link(FILENAME_WISHLIST)); } } break; // Fin Wishlist Checkboxes // performed by the 'buy now' button in product listings and review page case 'buy_now' : if (isset($HTTP_GET_VARS['products_id'])) { //Wishlist 2.0.1 Modification if (tep_session_is_registered('customer_id')) { tep_db_query("delete from " . TABLE_WISHLIST . " WHERE customers_id=$customer_id AND products_id=$products_id"); } // End Wishlist 2.0.1 Modification (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); } } if ( (defined('SEO_URLS') && SEO_URLS == 'true') && (defined('SEO_URLS_TYPE') && SEO_URLS_TYPE == 'Rewrite') ){ $cPath = tep_get_product_path($HTTP_GET_VARS['products_id']); $cPath_array = tep_parse_category_path($cPath); $cPath = implode('_', $cPath_array); tep_redirect(tep_href_link($goto, 'cPath=' . $cPath . '&' . tep_get_all_get_params($parameters))); } else { 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'])) { // begin mod for Wishlist v2.2 tep_db_query("delete from " . TABLE_WISHLIST . " where products_id = '" . $HTTP_GET_VARS['pid'] . "' and customers_id = '" . $customer_id . "'"); // end mod for Wishlist 2.2 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; // begin mod for Wishlist v2.2 // Add product to the wishlist case 'add_wishlist' : if (ereg('^[0-9]+$', $HTTP_GET_VARS['products_id'])) { if ($HTTP_GET_VARS['products_id']) { tep_db_query("delete from " . TABLE_WISHLIST . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_id = '" . $customer_id . "'"); tep_db_query("insert into " . TABLE_WISHLIST . " (customers_id, products_id, products_model, products_name, products_price) values ('" . $customer_id . "', '" . $products_id . "', '" . $products_model . "', '" . $products_name . "', '" . $products_price . "' )"); } } tep_redirect(tep_href_link(FILENAME_WISHLIST)); break; // Add wishlist item to the cart case 'wishlist_add_cart': reset ($lvnr); reset ($lvanz); while (list($key,$elem) =each ($lvnr)) { (list($key1,$elem1) =each ($lvanz)); tep_db_query("update " . TABLE_WISHLIST . " set products_quantity = '" . $elem1 . "' where customers_id = '" . $customer_id . "' and products_id = '" . $elem . "'"); tep_db_query("delete from " . TABLE_WISHLIST . " where customers_id= '" . $customer_id . "' and products_quantity = '999'"); $produkte_mit_anzahl=tep_db_query("select * from " . TABLE_WISHLIST . " where customers_id = '" . $customer_id . "' and products_id = '" . $elem . "' and products_quantity<>'0'"); while ($HTTP_GET_VARS=mysql_fetch_array($produkte_mit_anzahl)) { $cart->add_cart($HTTP_POST_VARS['products_id'], $HTTP_POST_VARS['products_quantity']); } } reset ($lvanz); tep_redirect(tep_href_link(FILENAME_WISHLIST)); break; // remove item from the wishlist case 'remove_wishlist': tep_db_query("delete from " . TABLE_WISHLIST . " where products_id = '" . $HTTP_GET_VARS['pid'] . "' and customers_id = '" . $customer_id . "'"); tep_redirect(tep_href_link(FILENAME_WISHLIST)); break; // end mod for Wishlist v2.2 } } // 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'); // HMCS: Begin Autologon ****************************************************************** if (ALLOW_AUTOLOGON == 'true') { // Is Autologon enabled? if (basename($PHP_SELF) != FILENAME_LOGIN) { // yes if (!tep_session_is_registered('customer_id')) { include('includes/modules/autologon.php'); } } } else { setcookie("email_address", "", time() - 3600, $cookie_path); //no, delete email_address cookie setcookie("password", "", time() - 3600, $cookie_path); //no, delete password cookie } // HMCS: End Autologon ****************************************************************** // set the pollbooth parameters (can be modified through the administration tool) $configuration_query = tep_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from phesis_poll_config'); while ($configuration = tep_db_fetch_array($configuration_query)) { define($configuration['cfgKey'], $configuration['cfgValue']); } ?> 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.