Jump to content
Chemo

[Contribution] Ultimate SEO URLs - by Chemo

Recommended Posts

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


Installed Contributions

osCMax v1.7 Basic Template Structure v1.2b Credit Class & Gift Voucher Admin With Access Levels 2.1 Download Controller v5.3 New Attribute Manager v4b Printable Catalog v3.0 Down For Maintenance 1.1b Shipping Per Product Pricing Per Customer Category Box Enhancement Authorize Net Consolodated AIM Specials On Main Page by Default Column Product Listing MS2 Auto Meta Tag Controller/ Generator X-Sell MS2 Edit Orders 1.2a MS2 Categories Descriptions MS2 Easy Populate 2.7.2 MS2 OSC-Affiliate 2.02 Define Mainpage WYSIWYG HTML Editor for Admin 1.7 WYSIWYG HTML Editor Category Box Bullet Graphics Dynamic Mo Pics MS2 PayPal Shopping Cart IPN v1.6 All Products Page 2.3 XML UPS USPS Methods 2.5 FedX RTQ 2.02 MS2 EFSnet Payment Module GeoTrust/SkipJack Payment Module PayBox Payment Module Coolmenu/DHTML menu Clear-Stats_v1.1 Price_Updater_v1.1

Share this post


Link to post
Share on other sites

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 by Brandi Lee

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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


Only Dead Fish Go With The Flow......

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
...

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

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

Enjoy!

 

Bobby

Share this post


Link to post
Share on other sites
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


Only Dead Fish Go With The Flow......

Share this post


Link to post
Share on other sites
It should be deleted every time you update a product or category...

 

Bobby

 

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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

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

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

Share this post


Link to post
Share on other sites

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 by mujina

OSC2.2

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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

Alright! Thanks for your reply!


OSC2.2

Share this post


Link to post
Share on other sites
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

 

 

Thanks for the reply. Take your time. I can just mannually delete the cache file till then :)

Share this post


Link to post
Share on other sites

Hi

 

When I add the code the the htaccess file I get an internal server error when I try to log in!!

 

Any ideas?

Share this post


Link to post
Share on other sites

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!!!!!


OSC2.2

Share this post


Link to post
Share on other sites
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!!!!!

 

Your install works without changes to the htaccess file?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

×