Basically i have started developing a site and chosen oscommerce to save time and because i have no php knowledge as its due to go live in 2 weeks, i need to integrate some code into the ordering process before i go too far.
I think by placing some code in the "checkout_confirmation.php" page i can call on the functions to work in the stockpriceandchecker.class.php (an additional file recieved from the suppliers) so that when you click Confirm order the file sends an xml data file to them to order the product.
Please note i have now started teaching myself php in the unfortunate event that i ever need to do something like this again
the file below is stockpriceandchecker.class.php
Code: Select all
<?php
require_once('classes/XPath.class.php');
/**
* StockAndPriceChecker class.
*
* This class provides a very simple interface to the XML Stock and Price Service from Supplier.
* You can use it to gain real time information on all of our products.
*
* {@internal
* You will need to download the xPath class in order to use this class, the xPath class must
* be placed somewhere accesable on your server. Then you must alter the include in the
* StockAndPriceChecker class file to reflect where the xPath class is stored as the
* example shows.
* <code>
* {require_once('/path/to/XPath.class.php');}
* </code>
* The class may be obtained from
* {@link http://sourceforge.net/projects/phpxpath/} }}
* You may instantiate a new instance of this class by following the example below
* <code>
* require_once('/path/to/StockAndPriceChecker.class.php');
* $objStkPriceChk=new StockAndPriceChecker();
* </code>
* @version 1.00
* @copyright Supplier Ltd. 2005
*/
class StockAndPriceChecker
{
/**
* Your Account Number.
* This must be changed to your ten digit account number issued by Supplier.
* @access private
* @var string
* @example 0000123456
*/
var $account_no='0000520465';
/**
* Your Password.
* This must be changed to the password for XML Query Service issued by Supplier.
* @access private
* @var string
* @example y0urpa55w0rd
*/
var $password='aw63fd7aw';
/**
* Part Number (Manufacturer or Supplier).
* This may be either the Manufacturer or Supplier Part Number and will be used to in the "querySupplier" method
* which grabs the XML data from the Supplier server. This should not be initialised here. To swap between using
* the Manufacturer or Supplier Part Number you must set the "manuOrMidwPn" variable to the appropriate value.
* @access private
* @var string
* @see manuOrMidwPn
* @see querySupplier
*/
var $part_pn='';
/**
* xPath Object.
* The xPath object is initialised in the constructor call and is responsible for grabbing and parsing the XML
* returned from the query.
* @access private
* @var object
*/
var $xPath;
/**
* Debug Flag.
* This cannot be set directly, this variable controls this class's debug functionality only, to get full
* debug information you should use the "setDebug" function as this also sets the debug flag for the xPath
* class which has some exelent debug of it's own.
* @access private
* @var boolean
* @example false
* @see setDebug
*/
var $debug=false;
/**
* Manufacturer or Supplier Part Number Flag.
* This can either be hard coded her or altered between requests by accessing the variable directly
* through the "StockAndPriceChecker" object you have created.
* @access public
* @var string
* @example midwpn or manupn
*/
var $manuOrMidwPn='midwpn';
/**
* Constructor StockAndPriceChecker.
* This constructor creates a new instance of the xPath class and sets any relevant variables within
* it.
*/
function StockAndPriceChecker()
{
$this->xPath = new XPath();
$this->xPath->bDebugXmlParse=$this->debug;
}
/**
* querySupplier queries the Supplier servers to get the realtime XML data.
* This function can be called many times to retrieve new data using the same object. Do this rather
* than instantiating a new StockAndPriceChecker object.
* @access public
* @param string [$pn] the Manufacturer of Supplier Part Number to retrieve data for.
*/
function querySupplier($pn)
{
$this->_reset();
$this->part_pn=$pn;
$this->part_pn;
if(!$this->xPath->importFromFile('http://www.Supplier.com/services/realtimeCheck.php?message=QUERY&tpid=' . $this->account_no . '&pass=' . $this->password . '&'.$this->manuOrMidwPn.'=' . $this->part_pn) && $this->debug){_debug($this->xPath->getLastError());}
}
/**
* setDebug sets the debug flag for StockAndPriceChecker and xPath.
* This function can be used to get extra debug info during development. The method sets both the
* StockAndPriceChecker and the xPath flag.
* @access public
* @param boolean [$value] debug flag (true or false).
*/
function setDebug($value)
{
$this->debug=$value;
$this->xPath->bDebugXmlParse=$value;
}
/**
* getSuccess assertains wether the xml has been recieved sucessfuly.
* This function is used to ascertain wether an error has occured, and if debug mode is set it will
* print out the error message to the screen.
* @access public
* @return boolean true or false depending on success.
*/
function getSuccess()
{
$result=false;
switch($this->xPath->getData('/query[1]/queryheader[1]/queryresult[1]/result[1]'))
{
case 'QUERY SUCCESS':
$result=true;
break;
case 'QUERY FAIL':
$result=false;
if($this->debug){_debug($this->xPath->getData('/query[1]/queryheader[1]/queryresult[1]/info[1]'));}
break;
default:
$result=false;
break;
}
return $result;
}
/**
* getGenerationTime Returns The Time And Date The Data Was Generated.
* This function returns the time and date the data was generated for debugging or logging purposes.
* @access public
* @return array array('date'=>20050601,'time'=>233355)
*/
function getGenerationTime()
{
return array('date'=>$this->xPath->getData('/query[1]/queryheader[1]/generation[1]/date[1]'), 'time'=>$this->xPath->getData('/query[1]/queryheader[1]/generation[1]/time[1]'));
}
/**
* getProductData Returns All Product Data Returned From The XML Query.
* This function returns an associative array of all product information gained from the XML query.
* @access public
* @return array array(midwpartno,manupartno,manuname,productname,category,description,list,deale
rprice,weight,stock,type)
*/
function getProductData()
{
return array(
'midwpartno'=>$this->xPath->wholeText('/query[1]/productdata[1]/midwpartno[1]'),
'manupartno'=>$this->xPath->wholeText('/query[1]/productdata[1]/manupartno[1]'),
'manuname'=>$this->xPath->wholeText('/query[1]/productdata[1]/manuname[1]'),
'productname'=>$this->xPath->wholeText('/query[1]/productdata[1]/productname[1]'),
'category'=>$this->xPath->wholeText('/query[1]/productdata[1]/category[1]'),
'description'=>$this->xPath->wholeText('/query[1]/productdata[1]/description[1]'),
'list'=>$this->xPath->wholeText('/query[1]/productdata[1]/list[1]'),
'dealerprice'=>$this->xPath->wholeText('/query[1]/productdata[1]/dealerprice[1]'),
'weight'=>$this->xPath->wholeText('/query[1]/productdata[1]/weight[1]'),
'stock'=>$this->xPath->wholeText('/query[1]/productdata[1]/stock[1]'),
'type'=>$this->xPath->wholeText('/query[1]/productdata[1]/type[1]')
);
}
/**
* getStock Returns Value Of Current Stock Level.
* This function returns the current stock level of the product the query was run for.
* @access public
* @return integer stock level value
*/
function getStock()
{
return $this->xPath->getData('/query[1]/productdata[1]/stock[1]');
}
/**
* getCost Returns Value Of Current Cost To You.
* This function returns the current cost to you of the product the query was run for.
* @access public
* @return float(2 d.p) dealer cost
*/
function getCost()
{
return $this->xPath->getData('/query[1]/productdata[1]/dealerprice[1]');
}
/**
* getAccessoryList Returns Accessory Details.
* This function returns an associative array of all the queried products accessories.
* @access public
* @return array array(array(midwpartno,manupartno,manuname,productname)) Accessory details
*/
function getAccessoryList()
{
$noAccessories=count($this->xPath->getDataParts('/query[1]/accessorylist[1]'))-1;
for($i=1;$i<=$noAccessories;$i++)
{
$aAccessoryList[]=array(
'midwpartno'=>$this->xPath->getData('/query[1]/accessorylist[1]/accessory['.$i.']/midwpartno[1]'),
'manupartno'=>$this->xPath->getData('/query[1]/accessorylist[1]/accessory['.$i.']/manupartno[1]'),
'manuname'=>$this->xPath->getData('/query[1]/accessorylist[1]/accessory['.$i.']/manuname[1]'),
'productname'=>$this->xPath->getData('/query[1]/accessorylist[1]/accessory['.$i.']/productname[1]')
); }
return $aAccessoryList;
}
/**
* getXMLAsHTML XML Formated As HTML.
* This function returns a HTML representation of the XML returned from the current query.
* @access public
* @return string HTML formated XML
*/
function getXMLAsHTML()
{
return $this->xPath->exportAsHtml();
}
/**
* getXML Raw XML Data.
* This function returns the raw XML from the query.
* @access public
* @return string Raw XML
*/
function getXML()
{
return $this->xPath->exportAsXml();
}
/**
* exportXMLToFile Export Raw XML Data To A File.
* This function writes the raw XML from the query to the specified file.
* @access public
* @param string [$filename] string value of a path to a file.
*/
function exportXMLToFile($filename)
{
return $this->xPath->exportToFile($filename);
}
/**
* _reset resets the xPath Object.
* This function resets the xPath object so that is does not have to be re-insantiated when
* making another XML query using the same object.the specified file.
* @access private
*/
function _reset()
{
$this->xPath->reset();
}
/**
* _debug formats debug info.
* This function formats debug information
* @access private
*/
function _debug($value)
{
echo '<br><hr><b>'.$value.'</b><hr><br>';
}
}
?>Code: Select all
<?php
/*
$Id: checkout_confirmation.php,v 1.139 2003/06/11 17:34:53 hpdl Exp $
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright (c) 2003 osCommerce
Released under the GNU General Public License
*/
require('includes/application_top.php');
// if the customer is not logged on, redirect them to the login page
if (!tep_session_is_registered('customer_id')) {
$navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT));
tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
}
// if there is nothing in the customers cart, redirect them to the shopping cart page
if ($cart->count_contents() < 1) {
tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));
}
// avoid hack attempts during the checkout procedure by checking the internal cartID
if (isset($cart->cartID) && tep_session_is_registered('cartID')) {
if ($cart->cartID != $cartID) {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
}
}
// if no shipping method has been selected, redirect the customer to the shipping method selection page
if (!tep_session_is_registered('shipping')) {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
}
if (!tep_session_is_registered('payment')) tep_session_register('payment');
if (isset($HTTP_POST_VARS['payment'])) $payment = $HTTP_POST_VARS['payment'];
if (!tep_session_is_registered('comments')) tep_session_register('comments');
if (tep_not_null($HTTP_POST_VARS['comments'])) {
$comments = tep_db_prepare_input($HTTP_POST_VARS['comments']);
}
// load the selected payment module
require(DIR_WS_CLASSES . 'payment.php');
$payment_modules = new payment($payment);
require(DIR_WS_CLASSES . 'order.php');
$order = new order;
$payment_modules->update_status();
if ( ( is_array($payment_modules->modules) && (sizeof($payment_modules->modules) > 1) && !is_object($$payment) ) || (is_object($$payment) && ($$payment->enabled == false)) ) {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(ERROR_NO_PAYMENT_MODULE_SELECTED), 'SSL'));
}
if (is_array($payment_modules->modules)) {
$payment_modules->pre_confirmation_check();
}
// load the selected shipping module
require(DIR_WS_CLASSES . 'shipping.php');
$shipping_modules = new shipping($shipping);
require(DIR_WS_CLASSES . 'order_total.php');
$order_total_modules = new order_total;
// Stock Check
$any_out_of_stock = false;
if (STOCK_CHECK == 'true') {
for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
if (tep_check_stock($order->products[$i]['id'], $order->products[$i]['qty'])) {
$any_out_of_stock = true;
}
}
// Out of Stock
if ( (STOCK_ALLOW_CHECKOUT != 'true') && ($any_out_of_stock == true) ) {
tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));
}
}
require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_CONFIRMATION);
$breadcrumb->add(NAVBAR_TITLE_1, tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
$breadcrumb->add(NAVBAR_TITLE_2);
?>
<!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"><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_confirmation.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>
<tr>
<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
<tr class="infoBoxContents">
<?php
if ($sendto != false) {
?>
<td width="30%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td class="main"><?php echo '<b>' . HEADING_DELIVERY_ADDRESS . '</b> <a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
</tr>
<tr>
<td class="main"><?php echo tep_address_format($order->delivery['format_id'], $order->delivery, 1, ' ', '<br>'); ?></td>
</tr>
<?php
if ($order->info['shipping_method']) {
?>
<tr>
<td class="main"><?php echo '<b>' . HEADING_SHIPPING_METHOD . '</b> <a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
</tr>
<tr>
<td class="main"><?php echo $order->info['shipping_method']; ?></td>
</tr>
<?php
}
?>
</table></td>
<?php
}
?>
<td width="<?php echo (($sendto != false) ? '70%' : '100%'); ?>" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
<?php
if (sizeof($order->info['tax_groups']) > 1) {
?>
<tr>
<td class="main" colspan="2"><?php echo '<b>' . HEADING_PRODUCTS . '</b> <a href="' . tep_href_link(FILENAME_SHOPPING_CART) . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
<td class="smallText" align="right"><b><?php echo HEADING_TAX; ?></b></td>
<td class="smallText" align="right"><b><?php echo HEADING_TOTAL; ?></b></td>
</tr>
<?php
} else {
?>
<tr>
<td class="main" colspan="3"><?php echo '<b>' . HEADING_PRODUCTS . '</b> <a href="' . tep_href_link(FILENAME_SHOPPING_CART) . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
</tr>
<?php
}
for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
echo ' <tr>' . "\n" .
' <td class="main" align="right" valign="top" width="30">' . $order->products[$i]['qty'] . ' x</td>' . "\n" .
' <td class="main" valign="top">' . $order->products[$i]['name'];
if (STOCK_CHECK == 'true') {
echo tep_check_stock($order->products[$i]['id'], $order->products[$i]['qty']);
}
if ( (isset($order->products[$i]['attributes'])) && (sizeof($order->products[$i]['attributes']) > 0) ) {
for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
echo '<br><nobr><small> <i> - ' . $order->products[$i]['attributes'][$j]['option'] . ': ' . $order->products[$i]['attributes'][$j]['value'] . '</i></small></nobr>';
}
}
echo '</td>' . "\n";
if (sizeof($order->info['tax_groups']) > 1) echo ' <td class="main" valign="top" align="right">' . tep_display_tax_value($order->products[$i]['tax']) . '%</td>' . "\n";
echo ' <td class="main" align="right" valign="top">' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . '</td>' . "\n" .
' </tr>' . "\n";
}
?>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<tr>
<td class="main"><b><?php echo HEADING_BILLING_INFORMATION; ?></b></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 width="30%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td class="main"><?php echo '<b>' . HEADING_BILLING_ADDRESS . '</b> <a href="' . tep_href_link(FILENAME_CHECKOUT_PAYMENT_ADDRESS, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
</tr>
<tr>
<td class="main"><?php echo tep_address_format($order->billing['format_id'], $order->billing, 1, ' ', '<br>'); ?></td>
</tr>
<tr>
<td class="main"><?php echo '<b>' . HEADING_PAYMENT_METHOD . '</b> <a href="' . tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
</tr>
<tr>
<td class="main"><?php echo $order->info['payment_method']; ?></td>
</tr>
</table></td>
<td width="70%" valign="top" align="right"><table border="0" cellspacing="0" cellpadding="2">
<?php
if (MODULE_ORDER_TOTAL_INSTALLED) {
$order_total_modules->process();
echo $order_total_modules->output();
}
?>
</table></td>
</tr>
</table></td>
</tr>
<?php
if (is_array($payment_modules->modules)) {
if ($confirmation = $payment_modules->confirmation()) {
?>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<tr>
<td class="main"><b><?php echo HEADING_PAYMENT_INFORMATION; ?></b></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" cellspacing="0" cellpadding="2">
<tr>
<td class="main" colspan="4"><?php echo $confirmation['title']; ?></td>
</tr>
<?php
for ($i=0, $n=sizeof($confirmation['fields']); $i<$n; $i++) {
?>
<tr>
<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
<td class="main"><?php echo $confirmation['fields'][$i]['title']; ?></td>
<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
<td class="main"><?php echo $confirmation['fields'][$i]['field']; ?></td>
</tr>
<?php
}
?>
</table></td>
</tr>
</table></td>
</tr>
<?php
}
}
?>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<?php
if (tep_not_null($order->info['comments'])) {
?>
<tr>
<td class="main"><?php echo '<b>' . HEADING_ORDER_COMMENTS . '</b> <a href="' . tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></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 class="main"><?php echo nl2br(tep_output_string_protected($order->info['comments'])) . tep_draw_hidden_field('comments', $order->info['comments']); ?></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<?php
}
?>
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td align="right" class="main">
<?php
if (isset($$payment->form_action_url)) {
$form_action_url = $$payment->form_action_url;
} else {
$form_action_url = tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL');
}
echo tep_draw_form('checkout_confirmation', $form_action_url, 'post');
if (is_array($payment_modules->modules)) {
echo $payment_modules->process_button();
}
echo tep_image_submit('button_confirm_order.gif', IMAGE_BUTTON_CONFIRM_ORDER) . '</form>' . "\n";
?>
</td>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="25%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="50%" align="right"><?php echo tep_draw_separator('pixel_silver.gif', '1', '5'); ?></td>
<td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>
</tr>
</table></td>
<td width="25%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>
<td width="25%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>
<td><?php echo tep_image(DIR_WS_IMAGES . 'checkout_bullet.gif'); ?></td>
<td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>
</tr>
</table></td>
<td width="25%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>
<td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '1', '5'); ?></td>
</tr>
</table></td>
</tr>
<tr>
<td align="center" width="25%" class="checkoutBarFrom"><?php echo '<a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '" class="checkoutBarFrom">' . CHECKOUT_BAR_DELIVERY . '</a>'; ?></td>
<td align="center" width="25%" class="checkoutBarFrom"><?php echo '<a href="' . tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL') . '" class="checkoutBarFrom">' . CHECKOUT_BAR_PAYMENT . '</a>'; ?></td>
<td align="center" width="25%" class="checkoutBarCurrent"><?php echo CHECKOUT_BAR_CONFIRMATION; ?></td>
<td align="center" width="25%" class="checkoutBarTo"><?php echo CHECKOUT_BAR_FINISHED; ?></td>
</tr>
</table></td>
</tr>
</table></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'); ?>Code: Select all