Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

[CONTRIBUTION] Ultimate SEO URLs v2.1 - by Chemo


Recommended Posts

I would love to install this contrib (version 2.1) on my site, but I'm on a Windows Iis 6 server. There is an option to use a httpd.ini file with Isapi rewrite codes. i've been searching on the internet, but haven't found the exact code for the file for version 2.1e (or d)

 

So my question is, Is there someone who can provide the httpd.ini file with the Isapi rewrite code for this contrib, version 2.1d or e?

I hope someone can help me out with this.

 

Claudia

 

Hi Claudia

 

Actually there is a new version of USU called ULTIMATE Seo Urls 5 .. you have to have PHP5.2 but other than that you can have seo urls without rewrites.

 

http://www.oscommerce.com/forums/index.php?showtopic=336702

 

Non rewrite seo urls are slightly different in as much as they look like ..

 

www.mysite.com/index.php/my-great-category-c-3

Link to comment
Share on other sites

Hi Claudia

 

Actually there is a new version of USU called ULTIMATE Seo Urls 5 .. you have to have PHP5.2 but other than that you can have seo urls without rewrites.

 

http://www.oscommerce.com/forums/index.php?showtopic=336702

 

Non rewrite seo urls are slightly different in as much as they look like ..

 

www.mysite.com/index.php/my-great-category-c-3

 

I have been following your contribution too. I was thinking which one of those two I wanted to install. But I have allready the header tags SEO installed, and as I understand your Ultimate seo urls 5 is not working with that, and this one should work with it. So that's why I choose this one. So I hope one day you and Jack-mcs can figure this out then I will switch to your version.

Edited by Clau123
Link to comment
Share on other sites

I have been following your contribution too. I was thinking which one of those two I wanted to install. But I have allready the header tags SEO installed, and as I understand your Ultimate seo urls 5 is not working with that, and this one should work with it. So that's why I choose this one. So I hope one day you and Jack-mcs can figure this out then I will switch to your version.

 

Ahhh I see .. can't imagine why a header tags contribution wouldn't work with usu5 .. as long as it uses the correct tep_href_link() function it would work fine. (what have header tags got to do with uris anyway?)

 

If it is reliant for some reason on uri generation surely it can't have been hardcoded to only work with one seo urls contribution??

Link to comment
Share on other sites

I haven't tried Ultimate seo urls 5 myself, but I read in the forums that Header tags Seo broke on the Ultimate seo urls 5. Maybe I'm going to try it later.

 

I have asked my provider to help me with my problem to install it on the windows server and still have the rewrite option available. My site is on a Windows IIs 6 server and my host has Isapi rewrite 2 installed, and I installed version 2.1e of USU

 

We finally did this:

1. make a new file httpd.ini and place it in the root of your site. This is important, because it won't work if you place it somewhere else.

 

2. Place this code in the file

 

[iSAPI_Rewrite]

 

UriMatchPrefix /catalog/

UriFormatPrefix /catalog/

 

# From Ultimate SEO URLs

RewriteRule ([^?]*)-p-([^?]*)\.html(?:\?(.*))? /product_info.php\?products_id=$2?3&$3{QUERY_STRING}[i,L]

RewriteRule ([^?]*)-c-([^?]*)\.html(?:\?(.*))? /index.php\?cPath=$2?3&$3{QUERY_STRING} [i,L]

RewriteRule ([^?]*)-m-([^?]*)\.html(?:\?(.*))? /index.php\?manufacturers_id=$2?3&$3{QUERY_STRING} [i,L]

RewriteRule ([^?]*)-pi-([^?]*)\.html(?:\?(.*))? /popup_image.php\?pID=$2?3&$3{QUERY_STRING} [i,L]

RewriteRule ([^?]*)-t-([^?]*)\.html(?:\?(.*))? /articles.php\?tPath=$2?3&$3{QUERY_STRING} [i,L]

RewriteRule ([^?]*)-a-([^?]*)\.html(?:\?(.*))? /article_info.php\?articles_id=$2?3&$3{QUERY_STRING} [i,L]

RewriteRule ([^?]*)-pr-([^?]*)\.html(?:\?(.*))? /product_reviews.php\?products_id=$2&%?3&$3{QUERY_STRING} [i,L]

RewriteRule ([^?]*)-pri-([^?]*)\.html(?:\?(.*))? /product_reviews_info.php\?products_id=$2?3&$3{QUERY_STRING} [i,L]

RewriteRule ([^?]*)-i-([^?]*)\.html(?:\?(.*))? /information.php\?info_id=$2?3&$3{QUERY_STRING} [i,L]

RewriteRule ([^?]*)-links-([^?]*)\.html(?:\?(.*))? /links.php\?lPath=$2?3&$3{QUERY_STRING} [i,L]

 

UriMatchPrefix

UriFormatPrefix

 

3. If you have your shop under the root leave the code

UriMatchPrefix /catalog/

UriFormatPrefix /catalog/

If you have your store under a folder called for example shop, then change it to (I haven't tried this, my site is in the root):

UriMatchPrefix /shop/catalog/

UriFormatPrefix /shop/catalog/

 

that's it. With my site it's working, hopefully with others too.

Edited by Clau123
Link to comment
Share on other sites

Claudia,

 

Just a quick note.. I have FWR Ultimate SEO URLs 5 and the latest Header Tags Seo (v3.1.5) working on my store and no compatibility issues between the two contributions. You should be good to go on using both of them together!

 

Regards

James

Link to comment
Share on other sites

Claudia,

 

Just a quick note.. I have FWR Ultimate SEO URLs 5 and the latest Header Tags Seo (v3.1.5) working on my store and no compatibility issues between the two contributions. You should be good to go on using both of them together!

 

Regards

James

 

Good to know this. I will try it when I have some other Contribs from my to do list installed.

Link to comment
Share on other sites

Claudia,

 

Just a quick note.. I have FWR Ultimate SEO URLs 5 and the latest Header Tags Seo (v3.1.5) working on my store and no compatibility issues between the two contributions. You should be good to go on using both of them together!

 

Regards

James

 

Thanks for taking the time to tell us James. It is good to know.

Link to comment
Share on other sites

Hi Everybody!

 

I installed Multi-stores (Multistores v2.0 with corrections V2.0 16 may 2009 With one database and one admin you can make lot's of oscommerce store. You can define configuration database table for each store- configuration1, conf2 and so on ) and after Ultimate SEO Urls ( 2.1e ORIGINAL updated 14 Jun 2009) too. The problem is, if I would like to configure SEO url-s I can configure only one store and the others not.

The store I can configure is always other. I have no idea what to do. I need search engine safe urls.

 

If anybody can help please don't hesitate smile.gif

 

I have osCommerce Online Merchant v2.2 RC2 Released

 

I made a new topic for it!

 

Zsolt

Link to comment
Share on other sites

Hy,

I want to ask if it's possible if i have two index files like index.php and index2.php to make the url renaming to work and go to the specific page.

 

Example: I have

 

1) http://localhost/oscommerce/index.php?cPath=12_13 (using SEO -> http://localhost/oscommerce/category-overview-c-12-13.html) and

2) http://localhost/oscommerce/index2.php?cPath=12_13 (using SEO -> http://localhost/oscommerce/category-tips-...s-c-12-13.html)

 

Can you please help me make this work. I've changed in the .htaccess file RewriteRule ^(.*)-c-(.*).html$ index.php?cPath=$2&%{QUERY_STRING}

RewriteRule ^(.*)-c-(.*).html$ index2.php?cPath=$2&%{QUERY_STRING} and also in seo.class.php like this:

 

case 'cPath':

switch(true){

case ($page == FILENAME_DEFAULT):

$url = $this->make_url($page, $this->get_category_name($p2[1]), $p2[0], $p2[1], '.html', $separator);

 

case ($page == FILENAME_DEFAULT2):

$url = $this->make_url($page, $this->get_category_name($p2[1]), $p2[0], $p2[1], '.html', $separator);

 

break;

case ( !$this->is_product_string($params) ):

if ( $this->attributes['SEO_ADD_CPATH_TO_PRODUCT_URLS'] == 'true' ){

$container[$p2[0]] = $p2[1];

}

break;

default:

$container[$p2[0]] = $p2[1];

break;

} # end switch

break;

 

ANY SUGGESTIONS?!

Link to comment
Share on other sites

All Product IDs Are Set to 1st Item in Cart

 

Hi,

I intalled Ultimate SEO 2.7 a couple of weeks ago - all seemed fine (brilliant contribution) & now I've just discovered that on the product_listing/category page, if you don't go into any product_info but just start adding listed items to the cart - after adding the 1st item - all other items have the product_id set to the first item - so that adding other items results in just multiples of the 1st item being added to the cart.

 

It's the code behind the "Add to Cart" button on the category screen that has it's Product ID set to the 1st item - but I don't know how to fix it...

 

Desperately trying to get this fixed on my first live site...

 

Many thanks for any help

Cheers

Jason

Link to comment
Share on other sites

Hello,

 

Can you show the site and the php code that generates the Add to Cart button here?

 

 

Stanislav

 

Hi Stanislav,

 

my site is www.4kits.co.uk

 

where would the code be? if I'm selecting a category then I get a list of products & then hitting "Add To Cart" there - is that product_listing.php, would it be the file in /includes/modules?

 

Thanks

Jason

Link to comment
Share on other sites

Hi Stanislav,

 

my site is www.4kits.co.uk

 

where would the code be? if I'm selecting a category then I get a list of products & then hitting "Add To Cart" there - is that product_listing.php, would it be the file in /includes/modules?

 

Thanks

Jason

 

Hello,

 

Show here content of two files:

shopping_cart.php

includes/application_top.php

 

 

Stanislav

Link to comment
Share on other sites

Hello,

 

Show here content of two files:

shopping_cart.php

includes/application_top.php

 

 

Stanislav

Hi,

My store is in the root dir, I've included /shopping_cart.php - I do have another shopping_cart.php in /includes/languages/english but that one hasn't been modified.

I've also included /includes/application_top.php

 

This is my /shopping_cart.php

 

<?php

/*

$Id: shopping_cart.php 1739 2007-12-20 00:52:16Z hpdl $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 2007 osCommerce

 

Released under the GNU General Public License

*/

 

require("includes/application_top.php");

 

if ($cart->count_contents() > 0) {

include(DIR_WS_CLASSES . 'payment.php');

$payment_modules = new payment;

}

 

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

 

$breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_SHOPPING_CART));

?>

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">

<html <?php echo HTML_PARAMS; ?>>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">

<title><?php echo TITLE; ?></title>

<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">

<link rel="stylesheet" type="text/css" href="stylesheet.css">

</head>

<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">

<!-- header //-->

<?php require(DIR_WS_INCLUDES . 'header.php'); ?>

<!-- header_eof //-->

 

<!-- body //-->

<table border="0" width="100%" cellspacing="3" cellpadding="3">

<tr>

<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">

<!-- left_navigation //-->

<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>

<!-- left_navigation_eof //-->

</table></td>

<!-- body_text //-->

<td width="100%" valign="top"><?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_SHOPPING_CART, 'action=update_product')); ?><table border="0" width="100%" cellspacing="0" cellpadding="0">

<tr>

<td><table border="0" width="100%" cellspacing="0" cellpadding="0">

<tr>

<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>

<td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_cart.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>

</tr>

</table></td>

</tr>

<tr>

<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

</tr>

<?php

if ($cart->count_contents() > 0) {

?>

<tr>

<td>

<?php

$info_box_contents = array();

$info_box_contents[0][] = array('align' => 'center',

'params' => 'class="productListing-heading"',

'text' => TABLE_HEADING_REMOVE);

 

$info_box_contents[0][] = array('params' => 'class="productListing-heading"',

'text' => TABLE_HEADING_PRODUCTS);

 

$info_box_contents[0][] = array('align' => 'center',

'params' => 'class="productListing-heading"',

'text' => TABLE_HEADING_QUANTITY);

 

$info_box_contents[0][] = array('align' => 'right',

'params' => 'class="productListing-heading"',

'text' => TABLE_HEADING_TOTAL);

 

$any_out_of_stock = 0;

$products = $cart->get_products();

for ($i=0, $n=sizeof($products); $i<$n; $i++) {

// Push all attributes information in an array

if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) {

while (list($option, $value) = each($products[$i]['attributes'])) {

echo tep_draw_hidden_field('id[' . $products[$i]['id'] . '][' . $option . ']', $value);

$attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix

from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa

where pa.products_id = '" . (int)$products[$i]['id'] . "'

and pa.options_id = '" . (int)$option . "'

and pa.options_id = popt.products_options_id

and pa.options_values_id = '" . (int)$value . "'

and pa.options_values_id = poval.products_options_values_id

and popt.language_id = '" . (int)$languages_id . "'

and poval.language_id = '" . (int)$languages_id . "'");

$attributes_values = tep_db_fetch_array($attributes);

 

$products[$i][$option]['products_options_name'] = $attributes_values['products_options_name'];

$products[$i][$option]['options_values_id'] = $value;

$products[$i][$option]['products_options_values_name'] = $attributes_values['products_options_values_name'];

$products[$i][$option]['options_values_price'] = $attributes_values['options_values_price'];

$products[$i][$option]['price_prefix'] = $attributes_values['price_prefix'];

}

}

}

// BOF Products Bundles

if (STOCK_CHECK == 'true') {

$runningsums = array();

 

// Temporarily sort the cart so that bundles are first to

// prevent marking a bundle out of stock, if the user tries to order

// a bundle's worth separately.

 

// Make a copy of the cart.

$workprods = $products;

for ($i = 0, $n = sizeof($workprods); $i < $n; $i++) {

// Remember the original sort order.

$workprods[$i]['origpos'] = $i;

}

 

// Sort.

$inorder = false;

while (!$inorder) {

$inorder = true;

for ($i = 0, $n = sizeof($workprods); $i < $n-1; $i++) {

if ($workprods[$i]['bundle'] != "yes" && $workprods[$i+1]['bundle'] == "yes") {

$workprod = $workprods[$i+1];

$workprods[$i+1] = $workprods[$i];

$workprods[$i] = $workprod;

$inorder = false;

break;

}

}

}

 

for ($i = 0, $n = sizeof($workprods); $i < $n; $i++) {

if ($workprods[$i]['bundle'] == "yes") {

$stock_checks[0][$i] = tep_check_stock($workprods[$i]['id'], $workprods[$i]['quantity']);

if (!tep_not_null($stock_checks[0][$i])) {

// The bundle is in stock, so count this against the total.

$bundle_query = tep_db_query("SELECT subproduct_id, subproduct_qty FROM " . TABLE_PRODUCTS_BUNDLES . " WHERE bundle_id = '" . $workprods[$i]['id'] . "'");

while ($bundle_data = tep_db_fetch_array($bundle_query)) {

$work = $bundle_data['subproduct_id'];

$runningsums[$work] += $bundle_data['subproduct_qty'];

}

}

} else {

$work = $workprods[$i]['id'];

$runningsums[$work] += $workprods[$i]['quantity'];

$stock_checks[0][$i] = tep_check_stock($workprods[$i]['id'], $runningsums[$work]);

}

}

 

// Now go back to the original sort order.

for ($i = 0, $n = sizeof($workprods); $i < $n; $i++) {

$work = $workprods[$i]['origpos'];

$stock_checks[1][$i] = $stock_checks[0][$work];

}

}

// EOF Product Bundles

 

for ($i=0, $n=sizeof($products); $i<$n; $i++) {

if (($i/2) == floor($i/2)) {

$info_box_contents[] = array('params' => 'class="productListing-even"');

} else {

$info_box_contents[] = array('params' => 'class="productListing-odd"');

}

 

$cur_row = sizeof($info_box_contents) - 1;

 

$info_box_contents[$cur_row][] = array('align' => 'center',

'params' => 'class="productListing-data" valign="top"',

'text' => tep_draw_checkbox_field('cart_delete[]', $products[$i]['id']));

 

$products_name = '<table border="0" cellspacing="2" cellpadding="2">' .

' <tr>' .

' <td class="productListing-data" align="center"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '">' . tep_image(DIR_WS_IMAGES . $products[$i]['image'], $products[$i]['name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a></td>' .

' <td class="productListing-data" valign="top"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '"><b>' . $products[$i]['name'] . '</b></a>';

 

if (STOCK_CHECK == 'true') {

//BOF Bundled Products

//$stock_check = tep_check_stock($products[$i]['id'], $products[$i]['quantity']);

$stock_check = $stock_checks[1][$i];

//EOF Bundled Products

if (tep_not_null($stock_check)) {

$any_out_of_stock = 1;

 

$products_name .= $stock_check;

}

}

 

if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) {

reset($products[$i]['attributes']);

while (list($option, $value) = each($products[$i]['attributes'])) {

$products_name .= '<br><small><i> - ' . $products[$i][$option]['products_options_name'] . ' ' . $products[$i][$option]['products_options_values_name'] . '</i></small>';

}

}

 

$products_name .= ' </td>' .

' </tr>' .

'</table>';

 

$info_box_contents[$cur_row][] = array('params' => 'class="productListing-data"',

'text' => $products_name);

 

$info_box_contents[$cur_row][] = array('align' => 'center',

'params' => 'class="productListing-data" valign="top"',

'text' => tep_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="4"') . tep_draw_hidden_field('products_id[]', $products[$i]['id']));

 

$info_box_contents[$cur_row][] = array('align' => 'right',

'params' => 'class="productListing-data" valign="top"',

'text' => '<b>' . $currencies->display_price($products[$i]['final_price'], tep_get_tax_rate($products[$i]['tax_class_id']), $products[$i]['quantity']) . '</b>');

}

 

new productListingBox($info_box_contents);

?>

</td>

</tr>

<tr>

<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

</tr>

<?php

// {{ buySAFE Module

if (is_array($buysafe_result) && $buysafe_result['IsBuySafeEnabled'] == 'true')

{

?>

<script src="<?php echo MODULE_BUYSAFE_BUYSAFE_ROLLOVER_URL; ?>" type="text/javascript" language="javascript" charset="utf-8"></script>

<script language="JavaScript" type="text/javascript">

<!--

function buySAFEOnClick()

{

if (document.cart_quantity.WantsBond.value == 'false')

{

document.cart_quantity.WantsBond.value = 'true';

}

else

{

document.cart_quantity.WantsBond.value = 'false';

}

document.cart_quantity.submit();

}

//-->

</script>

<tr>

<td align="right"><?php echo tep_draw_hidden_field('WantsBond', ($WantsBond ? $WantsBond : 'false')); ?><table cellspacing="2" cellpadding="2" border="0">

<tr>

<td class="main" align="right"><b><?php echo SUB_TITLE_SUB_TOTAL; ?></b></td>

<td class="main" align="right"><b><?php echo $currencies->format($cart->show_total()); ?></b></td>

</tr>

<tr>

<td class="main" align="right"><b><?php echo $buysafe_result['BondingSignal']; ?></b></td>

<td class="main" align="right"><b><?php echo $buysafe_result['BondCostDisplayText']; ?></b></td>

</tr>

<tr>

<td class="main" align="right"><b><?php echo SUB_TITLE_TOTAL; ?></b></td>

<td class="main" align="right"><b><?php echo ($buysafe_result['BondCostDisplayText'] ? $currencies->format($cart->show_total() + $buysafe_result['TotalBondCost']) : $currencies->format($cart->show_total())); ?></b></td>

</tr>

</table></td>

</tr>

<?php

}

else

{

?>

<tr>

<td align="right" class="main"><b><?php echo SUB_TITLE_SUB_TOTAL; ?> <?php echo $currencies->format($cart->show_total()); ?></b></td>

</tr>

<?php

} // end if (is_array($buysafe_result))

// }}

?>

<?php

if ($any_out_of_stock == 1) {

if (STOCK_ALLOW_CHECKOUT == 'true') {

?>

<tr>

<td class="stockWarning" align="center"><br><?php echo OUT_OF_STOCK_CAN_CHECKOUT; ?></td>

</tr>

<?php

} else {

?>

<tr>

<td class="stockWarning" align="center"><br><?php echo OUT_OF_STOCK_CANT_CHECKOUT; ?></td>

</tr>

<?php

}

}

?>

<tr>

<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

</tr>

<tr>

<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">

<tr class="infoBoxContents">

<td><table border="0" width="100%" cellspacing="0" cellpadding="2">

<tr>

<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

<td class="main"><?php echo tep_image_submit('button_update_cart.gif', IMAGE_BUTTON_UPDATE_CART); ?></td>

<?php

$back = sizeof($navigation->path)-2;

if (isset($navigation->path[$back])) {

?>

<td class="main"><?php echo '<a href="' . tep_href_link($navigation->path[$back]['page'], tep_array_to_string($navigation->path[$back]['get'], array('action')), $navigation->path[$back]['mode']) . '">' . tep_image_button('button_continue_shopping.gif', IMAGE_BUTTON_CONTINUE_SHOPPING) . '</a>'; ?></td>

<?php

}

?>

<td align="right" class="main"><?php echo '<a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '">' . tep_image_button('button_checkout.gif', IMAGE_BUTTON_CHECKOUT) . '</a>'; ?></td>

<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

</tr>

</table></td>

</tr>

</table></td>

</tr>

<?php

// {{ buySAFE Module

if (is_array($buysafe_result) && $buysafe_result['IsBuySafeEnabled'] == 'true')

{

?>

<tr>

<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

</tr>

<tr>

<td align="center" class="main"><a href="<?php echo $buysafe_result['CartDetailsUrl']; ?>" target="_blank" style="text-decoration:underline"><?php echo $buysafe_result['CartDetailsDisplayText']; ?></a></td>

</tr>

<?php

} // end if (is_array($buysafe_result))

// }}

?>

<?php

$initialize_checkout_methods = $payment_modules->checkout_initialization_method();

 

if (!empty($initialize_checkout_methods)) {

?>

<tr>

<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

</tr>

<tr>

<td align="right" class="main" style="padding-right: 50px;"><?php echo TEXT_ALTERNATIVE_CHECKOUT_METHODS; ?></td>

</tr>

<?php

reset($initialize_checkout_methods);

while (list(, $value) = each($initialize_checkout_methods)) {

?>

<tr>

<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

</tr>

<tr>

<td align="right" class="main"><?php echo $value; ?></td>

</tr>

<?php

}

}

} else {

?>

<tr>

<td align="center" class="main"><?php new infoBox(array(array('text' => TEXT_CART_EMPTY))); ?></td>

</tr>

<tr>

<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

</tr>

<tr>

<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">

<tr class="infoBoxContents">

<td><table border="0" width="100%" cellspacing="0" cellpadding="2">

<tr>

<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

<td align="right" class="main"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td>

<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

</tr>

</table></td>

</tr>

</table></td>

</tr>

<?php

}

?>

</table></form></td>

<!-- body_text_eof //-->

<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">

<!-- right_navigation //-->

<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>

<!-- right_navigation_eof //-->

</table></td>

</tr>

</table>

<!-- body_eof //-->

 

<!-- footer //-->

<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>

<!-- footer_eof //-->

<br>

</body>

</html>

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

 

********************************************************************************

***********************************

This is my /includes/application_top.php

 

<?php

/*

$Id: application_top.php 1785 2008-01-10 15:07:07Z hpdl $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 2008 osCommerce

 

Released under the GNU General Public License

*/

 

// start the timer for the page parse time log

define('PAGE_PARSE_START_TIME', microtime());

 

// set the level of error reporting

error_reporting(E_ALL & ~E_NOTICE);

 

// check support for register_globals

if (function_exists('ini_get') && (ini_get('register_globals') == false) && (PHP_VERSION < 4.3) ) {

exit('Server Requirement Error: register_globals is disabled in your PHP configuration. This can be enabled in your php.ini configuration file or in the .htaccess file in your catalog directory. Please use PHP 4.3+ if register_globals cannot be enabled on the server.');

}

 

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

 

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

}

 

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

// Ultimate SEO URLs v2.1

if ((!defined(SEO_ENABLED)) || (SEO_ENABLED == 'true')) {

include_once(DIR_WS_CLASSES . 'seo.class.php');

if ( !is_object($seo_urls) ){

$seo_urls = new SEO_URL($languages_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']) && $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;

}

}

//rmh referral start

// set the referral id

if (!tep_session_is_registered('referral_id') || isset($HTTP_GET_VARS['ref'])) {

if (!tep_session_is_registered('referral_id') && !tep_session_is_registered('customer_id')) {

tep_session_register('referral_id');

}

 

if (isset($HTTP_GET_VARS['ref']) && tep_not_null($HTTP_GET_VARS['ref'])) {

$referral_id = $HTTP_GET_VARS['ref'];

} else {

$referral_id = '';

}

}

//rmh referral end

 

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

}

}

 

// START STS 4.5.8

require (DIR_WS_CLASSES.'sts.php');

$sts= new sts();

$sts->start_capture();

// END STS 4.5.8

 

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

 

require_once(DIR_WS_CLASSES . 'preventDuplicates.php');

$preventDuplicates = new preventDuplicates();

?>

********************************************************************************

***********************************

 

Thank you so much again for your help

Regards

Jason

Link to comment
Share on other sites

Hello,

 

 

in the catalog/shopping_cart.php (about line 198)

 

Try to replace

                <td class="main"><?php echo '<a href="' . tep_href_link($navigation->path[$back]['page'], tep_array_to_string($navigation->path[$back]['get'], array('action')), $navigation->path[$back]['mode']) . '">' . tep_image_button('button_continue_shopping.gif', IMAGE_BUTTON_CONTINUE_SHOPPING) . '</a>'; ?></td>

 

With:

                <td class="main"><?php echo '<a href="' . tep_href_link($navigation->path[$back]['page'], tep_array_to_string($navigation->path[$back]['get'], array('action', 'products_id')), $navigation->path[$back]['mode']) . '">' . tep_image_button('button_continue_shopping.gif', IMAGE_BUTTON_CONTINUE_SHOPPING) . '</a>'; ?></td>

 

 

This is not a real fix of the problem but it can help.

 

 

Stanislav

Link to comment
Share on other sites

Hello,

 

 

in the catalog/shopping_cart.php (about line 198)

 

Try to replace

                <td class="main"><?php echo '<a href="' . tep_href_link($navigation->path[$back]['page'], tep_array_to_string($navigation->path[$back]['get'], array('action')), $navigation->path[$back]['mode']) . '">' . tep_image_button('button_continue_shopping.gif', IMAGE_BUTTON_CONTINUE_SHOPPING) . '</a>'; ?></td>

 

With:

                <td class="main"><?php echo '<a href="' . tep_href_link($navigation->path[$back]['page'], tep_array_to_string($navigation->path[$back]['get'], array('action', 'products_id')), $navigation->path[$back]['mode']) . '">' . tep_image_button('button_continue_shopping.gif', IMAGE_BUTTON_CONTINUE_SHOPPING) . '</a>'; ?></td>

 

 

This is not a real fix of the problem but it can help.

 

 

Stanislav

 

Hi Stanislav,

That fixed the problem! - Thank you so much, I am very grateful for your help & time you took to look over the code.

 

I dont' understand php enough to know why passing the product_id back would prevent ALL the product_id's being set to the same one under each "Add To Cart" button - but it works all the same.

 

Many Thanks again

Jason

Link to comment
Share on other sites

I have problem with thic sontribution;/

 

Please check the links on www.opal24.pl

 

Could someone tell me why they are like http://www.opal24.pl/-c-27.html?osCsid=f61...9941e5101b72d93 ?

 

Hello,

 

Try this:

 

Create a new file called characters_conversion.php

<?php
 // List all characters conversion
 // ### Ensure to save this file as the correct charset! ###
 $cyryllic = array('char' => 'convert',
				'char' => 'convert',
				'char' => 'convert');
?>

 

 

Once you have completed the complete conversion array save the file in catalog/includes/modules/characters_conversion.php

 

 

Open catalog/includes/classes/seo.class.php .. and find the following function:

		function expand($set){
	  $container = array();
	  if ( $this->not_null($set) ){
		if ( $data = @explode(',', $set) ){
		  foreach ( $data as $index => $valuepair){
			$p = @explode('=>', $valuepair);
			$container[trim($p[0])] = trim($p[1]);
		  }
		  return $container;
		} else {
		  return 'false';
		}
	  } else {
		return 'false';
	  }
	} # end function

 

 

Replace with:

  function expand($set){
	  if ( is_readable(DIR_FS_CATALOG . DIR_WS_MODULES . 'characters_conversion.php') ){
		include_once DIR_FS_CATALOG . DIR_WS_MODULES . 'characters_conversion.php';
		if (isset($cyryllic) && is_array($cyryllic) ){
		  return $cyryllic;
		}
	  }
	  $container = array();
	  if ( $this->not_null($set) ){
		if ( $data = @explode(',', $set) ){
		  foreach ( $data as $index => $valuepair){
			$p = @explode('=>', $valuepair);
			$container[trim($p[0])] = trim($p[1]);
		  }
		  return $container;
		} else {
		  return 'false';
		}
	  } else {
		return 'false';
	  }
	} # end function

 

 

characters_conversion.php should effectively bypass the standard function and use the array you created to replace the characters with no limit on size.

 

 

Stanislav

Edited by Pektsekye
Link to comment
Share on other sites

Hi Stanislav,

That fixed the problem! - Thank you so much, I am very grateful for your help & time you took to look over the code.

 

I dont' understand php enough to know why passing the product_id back would prevent ALL the product_id's being set to the same one under each "Add To Cart" button - but it works all the same.

 

Many Thanks again

Jason

 

I sopke too soon - now what happens is that the category/product_listing works ok with the cart but if you go into product_info.php then add to cart, it adds it to cart correctly but when you hit "Continue Shopping" it gives "Product not found" every time, then you can hit "Continue" which takes you back to the index pag rather than the category you were in.

 

Jason

Link to comment
Share on other sites

I sopke too soon - now what happens is that the category/product_listing works ok with the cart but if you go into product_info.php then add to cart, it adds it to cart correctly but when you hit "Continue Shopping" it gives "Product not found" every time, then you can hit "Continue" which takes you back to the index pag rather than the category you were in.

 

Jason

 

Hello,

 

 

Try this instead of the previous solution:

 

 

In the catalog/includes/modules/product_listing.php (about line 133)

 

replace:

            $lc_text = '<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $listing['products_id']) . '">' . tep_image_button('button_buy_now.gif', IMAGE_BUTTON_BUY_NOW) . '</a> ';

 

with:

            $lc_text = '<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'products_id')) . 'action=buy_now&products_id=' . $listing['products_id']) . '">' . tep_image_button('button_buy_now.gif', IMAGE_BUTTON_BUY_NOW) . '</a> ';

 

 

Stanislav

Link to comment
Share on other sites

Hello,

 

 

Try this instead of the previous solution:

 

 

In the catalog/includes/modules/product_listing.php (about line 133)

 

replace:

            $lc_text = '<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $listing['products_id']) . '">' . tep_image_button('button_buy_now.gif', IMAGE_BUTTON_BUY_NOW) . '</a> ';

 

with:

            $lc_text = '<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'products_id')) . 'action=buy_now&products_id=' . $listing['products_id']) . '">' . tep_image_button('button_buy_now.gif', IMAGE_BUTTON_BUY_NOW) . '</a> ';

 

 

Stanislav

 

Hi Stanislav,

That has reverted it back to the original problem - I'm not getting "Product not found" any more but if you add more than 1 product to the cart from the category/product_listing it just duplicates the first item in the cart.

 

I've noticed that at that piece of code you mentioned above in the product_listing.php - it's slightly different fro me as I have the contribution Bundled Products installed, my code looks like this:

 

// BOF Bundled Products

case 'PRODUCT_LIST_BUY_NOW':

$lc_align = 'center';

$StockChecker1 = tep_get_products_stock($listing['products_id']);

if ( $StockChecker1 <> 0){

$lc_text = (($listing['products_price'] > 0) ? '<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'product_id')) . 'action=buy_now&products_id=' . $listing['products_id']) . '">' . tep_image_button('button_in_cart.gif', IMAGE_BUTTON_IN_CART) . '</a> ' : ' ');

}else{

$lc_text = tep_image_button('button_out_of_stock.gif', IMAGE_BUTTON_OUT_OF_STOCK) . ' ';

}

break;

// EOF Bundled Products

 

I have php5.2.9 installed - should I be on Ultimate SEO URL 5 (I'm on 2.7)?

 

if I move to version 5 do you know if that would mess-up things like my Bundled Products that are embedded into files like product_listing.php?

I'll start looking at Ultimate SEO URL 5 install to see what's involved.

Cheers

Jason

Link to comment
Share on other sites

.....

 

characters_conversion.php should effectively bypass the standard function and use the array you created to replace the characters with no limit on size.

 

 

Stanislav

 

thanks, that is hellfull and work!

 

But I have long products name - like new long tshirt eg. and I see ...newlongtshirt.html (I want to make it like ...new-longt-shirt.html) , in characters_conversion.php I include ' ' => '-', but it don't work.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...