[TEP-COMMIT] [CVS catalog] the new checkout shipping page based on a CSS layout, and the new shipping

hpdl-OfajU3CKLf1/[email protected] 30 Mar 2005 00:00:09 -0000
Newsgroups gmane.comp.web.oscommerce.cvs
Message-ID <[email protected]>
<html>
<head>
<style><!--
  body {background-color:#ffffff;}
  .file {border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;}
  .pathname {font-family:monospace; float:right;}
  .fileheader {margin-bottom:.5em;}
  .diff {margin:0;}
  .tasklist {padding:4px;border:1px dashed #000000;margin-top:1em;}
  .tasklist ul {margin-top:0;margin-bottom:0;}
  tr.alt {background-color:#eeeeee}
  #added {background-color:#ddffdd;}
  #addedchars {background-color:#99ff99;font-weight:bolder;}
  tr.alt #added {background-color:#ccf7cc;}
  #removed {background-color:#ffdddd;}
  #removedchars {background-color:#ff9999;font-weight:bolder;}
  tr.alt #removed {background-color:#f7cccc;}
  #info {color:#888888;}
  #context {background-color:#eeeeee;}
  td {padding-left:.3em;padding-right:.3em;}
  tr.head {border-bottom-width:1px;border-bottom-style:solid;}
  tr.head td {padding:0;padding-top:.2em;}
  .task {background-color:#ffff00;}
  .comment {padding:4px;border:1px dashed #000000;background-color:#ffffdd}
  .error {color:red;}
  hr {border-width:0px;height:2px;background:black;}
--></style>
</head>
<body>
<table cellspacing="0" cellpadding="0" border="0" rules="cols">
<tr class="head"><td colspan="4">Commit in <b><tt>catalog/catalog/includes</tt></b><span id="info"> on MAIN</span></td></tr>
<tr><td><tt>content/pages/<a href="#file1"><span id="added">checkout_shipping.php</span></a></tt></td><td align="right" id="added">+219</td><td></td><td nowrap="nowrap" align="right">added <a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/content/pages/checkout_shipping.php?rev=1.1&amp;content-type=text/vnd.viewcvs-markup">1.1</a></td></tr>
<tr class="alt"><td><tt>modules/checkout/<a href="#file2"><span id="added">shipping.php</span></a></tt></td><td align="right" id="added">+181</td><td></td><td nowrap="nowrap" align="right">added <a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/modules/checkout/shipping.php?rev=1.1&amp;content-type=text/vnd.viewcvs-markup">1.1</a></td></tr>
<tr><td></td><td align="right" id="added">+400</td><td></td><td></td></tr>
</table>
<small id="info">2 added files</small><br />
<pre class="comment">
the new checkout shipping page based on a CSS layout, and the new shipping
checkout module to handle the processing logic
</pre>
<hr /><a name="file1" /><div class="file">
<span class="pathname" id="added"><a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog">catalog</a>/<a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog">catalog</a>/<a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes">includes</a>/<a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/content">content</a>/<a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/content/pages">pages</a><br /></span>
<div class="fileheader" id="added"><big><b>checkout_shipping.php</b></big> <small id="info">added at <a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/content/pages/checkout_shipping.php?rev=1.1&amp;content-type=text/vnd.viewcvs-markup">1.1</a></small></div>
<pre class="diff"><small id="info">diff -N checkout_shipping.php
--- /dev/null	Wed Mar 30 02:00:02 2005
+++ /tmp/cvsAAAEPayFW	Wed Mar 30 02:00:06 2005
@@ -0,0 +1,219 @@
</small></pre><pre class="diff" id="added">+&lt;?php
+/*
+  $Id$
+
+  osCommerce, Open Source E-Commerce Solutions
+  http://www.oscommerce.com
+
+  Copyright (c) 2005 osCommerce
+
+  Released under the GNU General Public License
+*/
+?&gt;
+
+&lt;script language="javascript"&gt;&lt;!--
+var selected;
+
+function selectRowEffect(object, buttonSelect) {
+  if (!selected) {
+    if (document.getElementById) {
+      selected = document.getElementById('defaultSelected');
+    } else {
+      selected = document.all['defaultSelected'];
+    }
+  }
+
+  if (selected) selected.className = 'moduleRow';
+  object.className = 'moduleRowSelected';
+  selected = object;
+
+// one button is not an array
+  if (document.checkout_address.shipping[0]) {
+    document.checkout_address.shipping[buttonSelect].checked=true;
+  } else {
+    document.checkout_address.shipping.checked=true;
+  }
+}
+//--&gt;&lt;/script&gt;
+
+&lt;div class="pageHeading"&gt;
+  &lt;span class="pageHeadingImage"&gt;&lt;?php echo tep_image(DIR_WS_IMAGES . 'table_background_delivery.gif', HEADING_TITLE_CHECKOUT_SHIPPING, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?&gt;&lt;/span&gt;
+
+  &lt;h1&gt;&lt;?php echo HEADING_TITLE_CHECKOUT_SHIPPING; ?&gt;&lt;/h1&gt;
+&lt;/div&gt;
+
+&lt;form name="checkout_address" action="&lt;?php echo tep_href_link(FILENAME_CHECKOUT, 'shipping=process', 'SSL'); ?&gt;" method="post"&gt;
+
+&lt;div class="moduleBox"&gt;
+  &lt;div class="outsideHeading"&gt;&lt;?php echo TABLE_HEADING_SHIPPING_ADDRESS; ?&gt;&lt;/div&gt;
+
+  &lt;div class="content"&gt;
+    &lt;div style="float: right; padding: 0px 0px 10px 20px;"&gt;
+      &lt;?php echo tep_address_label($osC_Customer-&gt;id, $osC_Session-&gt;value('sendto'), true, ' ', '&lt;br&gt;'); ?&gt;
+    &lt;/div&gt;
+
+    &lt;div style="float: right; padding: 0px 0px 10px 20px; text-align: center;"&gt;
+      &lt;?php echo '&lt;b&gt;' . TITLE_SHIPPING_ADDRESS . '&lt;/b&gt;&lt;br&gt;' . tep_image(DIR_WS_IMAGES . 'arrow_south_east.gif'); ?&gt;
+    &lt;/div&gt;
+
+    &lt;?php echo TEXT_CHOOSE_SHIPPING_DESTINATION . '&lt;br&gt;&lt;br&gt;&lt;a href="' . tep_href_link(FILENAME_CHECKOUT, 'shipping_address', 'SSL') . '"&gt;' . tep_image_button('button_change_address.gif', IMAGE_BUTTON_CHANGE_ADDRESS) . '&lt;/a&gt;'; ?&gt;
+  &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;?php
+  if (tep_count_shipping_modules() &gt; 0) {
+?&gt;
+
+&lt;div class="moduleBox"&gt;
+  &lt;div class="outsideHeading"&gt;&lt;?php echo TABLE_HEADING_SHIPPING_METHOD; ?&gt;&lt;/div&gt;
+
+  &lt;div class="content"&gt;
+
+&lt;?php
+    if ( (sizeof($quotes) &gt; 1) &amp;&amp; (sizeof($quotes[0]) &gt; 1) ) {
+?&gt;
+
+    &lt;div style="float: right; padding: 0px 0px 10px 20px; text-align: center;"&gt;
+      &lt;?php echo '&lt;b&gt;' . TITLE_PLEASE_SELECT . '&lt;/b&gt;&lt;br&gt;' . tep_image(DIR_WS_IMAGES . 'arrow_east_south.gif'); ?&gt;
+    &lt;/div&gt;
+
+    &lt;p style="margin-top: 0px;"&gt;&lt;?php echo TEXT_CHOOSE_SHIPPING_METHOD; ?&gt;&lt;/p&gt;
+
+&lt;?php
+    } elseif ($free_shipping == false) {
+?&gt;
+
+    &lt;p style="margin-top: 0px;"&gt;&lt;?php echo TEXT_ENTER_SHIPPING_INFORMATION; ?&gt;&lt;/p&gt;
+
+&lt;?php
+    }
+?&gt;
+
+    &lt;table border="0" width="100%" cellspacing="0" cellpadding="2"&gt;
+
+&lt;?php
+    if ($free_shipping == true) {
+?&gt;
+      &lt;tr&gt;
+        &lt;td width="100%"&gt;&lt;table border="0" width="100%" cellspacing="0" cellpadding="2"&gt;
+          &lt;tr&gt;
+            &lt;td width="10"&gt;&lt;?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?&gt;&lt;/td&gt;
+            &lt;td class="main" colspan="3"&gt;&lt;b&gt;&lt;?php echo FREE_SHIPPING_TITLE; ?&gt;&lt;/b&gt;&amp;nbsp;&lt;?php echo $quotes[$i]['icon']; ?&gt;&lt;/td&gt;
+            &lt;td width="10"&gt;&lt;?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?&gt;&lt;/td&gt;
+          &lt;/tr&gt;
+          &lt;tr id="defaultSelected" class="moduleRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, 0)"&gt;
+            &lt;td width="10"&gt;&lt;?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?&gt;&lt;/td&gt;
+            &lt;td class="main" width="100%"&gt;&lt;?php echo sprintf(FREE_SHIPPING_DESCRIPTION, $osC_Currencies-&gt;format(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)) . osc_draw_hidden_field('shipping', 'free_free'); ?&gt;&lt;/td&gt;
+            &lt;td width="10"&gt;&lt;?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?&gt;&lt;/td&gt;
+          &lt;/tr&gt;
+        &lt;/table&gt;&lt;/td&gt;
+      &lt;/tr&gt;
+&lt;?php
+    } else {
+      $radio_buttons = 0;
+      for ($i=0, $n=sizeof($quotes); $i&lt;$n; $i++) {
+?&gt;
+      &lt;tr&gt;
+        &lt;td&gt;&lt;table border="0" width="100%" cellspacing="0" cellpadding="2"&gt;
+          &lt;tr&gt;
+            &lt;td width="10"&gt;&lt;?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?&gt;&lt;/td&gt;
+            &lt;td class="main" colspan="3"&gt;&lt;b&gt;&lt;?php echo $quotes[$i]['module']; ?&gt;&lt;/b&gt;&amp;nbsp;&lt;?php if (isset($quotes[$i]['icon']) &amp;&amp; tep_not_null($quotes[$i]['icon'])) { echo $quotes[$i]['icon']; } ?&gt;&lt;/td&gt;
+            &lt;td width="10"&gt;&lt;?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?&gt;&lt;/td&gt;
+          &lt;/tr&gt;
+&lt;?php
+        if (isset($quotes[$i]['error'])) {
+?&gt;
+          &lt;tr&gt;
+            &lt;td width="10"&gt;&lt;?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?&gt;&lt;/td&gt;
+            &lt;td class="main" colspan="3"&gt;&lt;?php echo $quotes[$i]['error']; ?&gt;&lt;/td&gt;
+            &lt;td width="10"&gt;&lt;?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?&gt;&lt;/td&gt;
+          &lt;/tr&gt;
+&lt;?php
+        } else {
+          for ($j=0, $n2=sizeof($quotes[$i]['methods']); $j&lt;$n2; $j++) {
+            if ( (($n == 1) &amp;&amp; ($n2 == 1)) || ($quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id'] == $osC_Session-&gt;value('shipping')) ) {
+              echo '          &lt;tr id="defaultSelected" class="moduleRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, ' . $radio_buttons . ')"&gt;' . "\n";
+            } else {
+              echo '          &lt;tr class="moduleRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, ' . $radio_buttons . ')"&gt;' . "\n";
+            }
+?&gt;
+            &lt;td width="10"&gt;&lt;?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?&gt;&lt;/td&gt;
+            &lt;td class="main" width="75%"&gt;&lt;?php echo $quotes[$i]['methods'][$j]['title']; ?&gt;&lt;/td&gt;
+&lt;?php
+            if ( ($n &gt; 1) || ($n2 &gt; 1) ) {
+?&gt;
+            &lt;td class="main"&gt;&lt;?php echo $osC_Currencies-&gt;format(tep_add_tax($quotes[$i]['methods'][$j]['cost'], (isset($quotes[$i]['tax']) ? $quotes[$i]['tax'] : 0))); ?&gt;&lt;/td&gt;
+            &lt;td class="main" align="right"&gt;&lt;?php echo osc_draw_radio_field('shipping', $quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id'], $osC_Session-&gt;value('shipping')); ?&gt;&lt;/td&gt;
+&lt;?php
+            } else {
+?&gt;
+            &lt;td class="main" align="right" colspan="2"&gt;&lt;?php echo $osC_Currencies-&gt;format(tep_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax'])) . osc_draw_hidden_field('shipping', $quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id']); ?&gt;&lt;/td&gt;
+&lt;?php
+            }
+?&gt;
+            &lt;td width="10"&gt;&lt;?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?&gt;&lt;/td&gt;
+          &lt;/tr&gt;
+&lt;?php
+            $radio_buttons++;
+          }
+        }
+?&gt;
+        &lt;/table&gt;&lt;/td&gt;
+      &lt;/tr&gt;
+&lt;?php
+      }
+    }
+?&gt;
+
+    &lt;/table&gt;
+  &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;?php
+  }
+?&gt;
+
+&lt;div class="moduleBox"&gt;
+  &lt;div class="outsideHeading"&gt;&lt;?php echo TABLE_HEADING_COMMENTS; ?&gt;&lt;/div&gt;
+
+  &lt;div class="content"&gt;
+    &lt;?php echo osc_draw_textarea_field('comments', ($osC_Session-&gt;exists('comments') ? $osC_Session-&gt;value('comments') : '')); ?&gt;
+  &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div class="moduleBox"&gt;
+  &lt;div class="content"&gt;
+    &lt;div style="float: right;"&gt;
+      &lt;?php echo tep_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE); ?&gt;
+    &lt;/div&gt;
+
+    &lt;?php echo '&lt;b&gt;' . TITLE_CONTINUE_CHECKOUT_PROCEDURE . '&lt;/b&gt;&lt;br&gt;' . TEXT_CONTINUE_CHECKOUT_PROCEDURE_TO_PAYMENT; ?&gt;
+  &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;table border="0" width="100%" cellspacing="0" cellpadding="0"&gt;
+  &lt;tr&gt;
+    &lt;td width="25%"&gt;&lt;table border="0" width="100%" cellspacing="0" cellpadding="0"&gt;
+      &lt;tr&gt;
+        &lt;td width="50%" align="right"&gt;&lt;?php echo tep_image(DIR_WS_IMAGES . 'checkout_bullet.gif'); ?&gt;&lt;/td&gt;
+        &lt;td width="50%"&gt;&lt;?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?&gt;&lt;/td&gt;
+      &lt;/tr&gt;
+    &lt;/table&gt;&lt;/td&gt;
+    &lt;td width="25%"&gt;&lt;?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?&gt;&lt;/td&gt;
+    &lt;td width="25%"&gt;&lt;?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?&gt;&lt;/td&gt;
+    &lt;td width="25%"&gt;&lt;table border="0" width="100%" cellspacing="0" cellpadding="0"&gt;
+      &lt;tr&gt;
+        &lt;td width="50%"&gt;&lt;?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?&gt;&lt;/td&gt;
+        &lt;td width="50%"&gt;&lt;?php echo tep_draw_separator('pixel_silver.gif', '1', '5'); ?&gt;&lt;/td&gt;
+      &lt;/tr&gt;
+    &lt;/table&gt;&lt;/td&gt;
+  &lt;/tr&gt;
+  &lt;tr&gt;
+    &lt;td align="center" width="25%" class="checkoutBarCurrent"&gt;&lt;?php echo CHECKOUT_BAR_DELIVERY; ?&gt;&lt;/td&gt;
+    &lt;td align="center" width="25%" class="checkoutBarTo"&gt;&lt;?php echo CHECKOUT_BAR_PAYMENT; ?&gt;&lt;/td&gt;
+    &lt;td align="center" width="25%" class="checkoutBarTo"&gt;&lt;?php echo CHECKOUT_BAR_CONFIRMATION; ?&gt;&lt;/td&gt;
+    &lt;td align="center" width="25%" class="checkoutBarTo"&gt;&lt;?php echo CHECKOUT_BAR_FINISHED; ?&gt;&lt;/td&gt;
+  &lt;/tr&gt;
+&lt;/table&gt;
+
+&lt;/form&gt;
</pre></div>
<hr /><a name="file2" /><div class="file">
<span class="pathname" id="added"><a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog">catalog</a>/<a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog">catalog</a>/<a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes">includes</a>/<a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/modules">modules</a>/<a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/modules/checkout">checkout</a><br /></span>
<div class="fileheader" id="added"><big><b>shipping.php</b></big> <small id="info">added at <a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/modules/checkout/shipping.php?rev=1.1&amp;content-type=text/vnd.viewcvs-markup">1.1</a></small></div>
<pre class="diff"><small id="info">diff -N shipping.php
--- /dev/null	Wed Mar 30 02:00:02 2005
+++ /tmp/cvsAAAt1aiJW	Wed Mar 30 02:00:07 2005
@@ -0,0 +1,181 @@
</small></pre><pre class="diff" id="added">+&lt;?php
+/*
+  $Id$
+
+  osCommerce, Open Source E-Commerce Solutions
+  http://www.oscommerce.com
+
+  Copyright (c) 2005 osCommerce
+
+  Released under the GNU General Public License
+*/
+
+  require('includes/classes/http_client.php');
+
+  class osC_Checkout_Shipping {
+
+/* Public variables */
+
+    var $page_contents = 'checkout_shipping.php';
+
+/* Private variables */
+
+    var $_module = 'shipping';
+
+/* Class constructor */
+
+    function osC_Checkout_Shipping() {
+      global $osC_Database, $osC_Session, $osC_Customer, $osC_Services, $breadcrumb, $order, $cart, $total_weight, $total_count, $shipping_modules, $pass, $free_shipping, $quotes;
+
+      if ($cart-&gt;count_contents() &lt; 1) {
+        tep_redirect(tep_href_link(FILENAME_CHECKOUT, '', 'SSL'));
+      }
+
+      if ($osC_Services-&gt;isStarted('breadcrumb')) {
+        $breadcrumb-&gt;add(NAVBAR_TITLE_CHECKOUT_SHIPPING, tep_href_link(FILENAME_CHECKOUT, $this-&gt;_module, 'SSL'));
+      }
+
+      if ($osC_Customer-&gt;hasDefaultAddress() === false) {
+        $this-&gt;page_contents = 'shipping_address.php';
+      }
+
+// if no shipping destination address was selected, use the customers own address as default
+      if ($osC_Session-&gt;exists('sendto') == false) {
+        $osC_Session-&gt;set('sendto', $osC_Customer-&gt;default_address_id);
+      } else {
+// verify the selected shipping address
+        $Qcheck = $osC_Database-&gt;query('select count(*) as total from :table_address_book where customers_id = :customers_id and address_book_id = :address_book_id');
+        $Qcheck-&gt;bindTable(':table_address_book', TABLE_ADDRESS_BOOK);
+        $Qcheck-&gt;bindInt(':customers_id', $osC_Customer-&gt;id);
+        $Qcheck-&gt;bindInt(':address_book_id', $osC_Session-&gt;value('sendto'));
+        $Qcheck-&gt;execute();
+
+        if ($Qcheck-&gt;valueInt('total') != 1) {
+          $osC_Session-&gt;set('sendto', $osC_Customer-&gt;default_address_id);
+
+          $osC_Session-&gt;remove('shipping');
+        }
+      }
+
+      $order = new order;
+
+// register a random ID in the session to check throughout the checkout procedure
+// against alterations in the shopping cart contents
+      $osC_Session-&gt;set('cartID', $cart-&gt;cartID);
+
+// if the order contains only virtual products, forward the customer to the billing page as
+// a shipping address is not needed
+    if ($order-&gt;content_type == 'virtual') {
+      $false = false;
+
+      $osC_Session-&gt;set('shipping', $false);
+      $osC_Session-&gt;set('sendto', $false);
+
+      tep_redirect(tep_href_link(FILENAME_CHECKOUT, 'payment', 'SSL'));
+    }
+
+    $total_weight = $cart-&gt;show_weight();
+    $total_count = $cart-&gt;count_contents();
+
+// load all enabled shipping modules
+    require(DIR_WS_CLASSES . 'shipping.php');
+    $shipping_modules = new shipping;
+
+    if (defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING') &amp;&amp; (MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true')) {
+      $pass = false;
+
+      switch (MODULE_ORDER_TOTAL_SHIPPING_DESTINATION) {
+        case 'national':
+          if ($order-&gt;delivery['country_id'] == STORE_COUNTRY) {
+            $pass = true;
+          }
+          break;
+        case 'international':
+          if ($order-&gt;delivery['country_id'] != STORE_COUNTRY) {
+            $pass = true;
+          }
+          break;
+        case 'both':
+          $pass = true;
+          break;
+      }
+
+      $free_shipping = false;
+      if ( ($pass == true) &amp;&amp; ( ($order-&gt;info['total'] - $order-&gt;info['shipping_cost']) &gt;= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) ) {
+        $free_shipping = true;
+
+        include(DIR_WS_LANGUAGES . $osC_Session-&gt;value('language') . '/modules/order_total/ot_shipping.php');
+      }
+    } else {
+      $free_shipping = false;
+    }
+
+// get all available shipping quotes
+    $quotes = $shipping_modules-&gt;quote();
+
+// if no shipping method has been selected, automatically select the cheapest method.
+// if the modules status was changed when none were available, to save on implementing
+// a javascript force-selection method, also automatically select the cheapest shipping
+// method if more than one module is now enabled
+    if ( ($osC_Session-&gt;exists('shipping') == false) || ($osC_Session-&gt;exists('shipping') &amp;&amp; ($osC_Session-&gt;value('shipping') == false) &amp;&amp; (tep_count_shipping_modules() &gt; 1)) ) {
+      $osC_Session-&gt;set('shipping', $shipping_modules-&gt;cheapest());
+    }
+
+    if ($_GET[$this-&gt;_module] == 'process') {
+      $this-&gt;_process();
+    }
+  }
+
+/* Public methods */
+
+    function getPageContentsFile() {
+      return $this-&gt;page_contents;
+    }
+
+/* Private methods */
+
+    function _process() {
+      global $osC_Session, $free_shipping, $shipping_modules;
+
+      if (tep_not_null($_POST['comments'])) {
+        $osC_Session-&gt;set('comments', tep_sanitize_string($_POST['comments']));
+      }
+
+      if ( (tep_count_shipping_modules() &gt; 0) || ($free_shipping == true) ) {
+        if (isset($_POST['shipping']) &amp;&amp; strpos($_POST['shipping'], '_')) {
+          $osC_Session-&gt;set('shipping', $_POST['shipping']);
+
+          list($module, $method) = explode('_', $osC_Session-&gt;value('shipping'));
+          if (is_object($GLOBALS[$module]) || ($osC_Session-&gt;value('shipping') == 'free_free')) {
+            if ($osC_Session-&gt;value('shipping') == 'free_free') {
+              $quote[0]['methods'][0]['title'] = FREE_SHIPPING_TITLE;
+              $quote[0]['methods'][0]['cost'] = '0';
+            } else {
+              $quote = $shipping_modules-&gt;quote($method, $module);
+            }
+
+            if (isset($quote['error'])) {
+              $osC_Session-&gt;remove('shipping');
+            } else {
+              if (isset($quote[0]['methods'][0]['title']) &amp;&amp; isset($quote[0]['methods'][0]['cost'])) {
+                $shipping = array('id' =&gt; $osC_Session-&gt;value('shipping'),
+                                  'title' =&gt; (($free_shipping == true) ?  $quote[0]['methods'][0]['title'] : $quote[0]['module'] . ' (' . $quote[0]['methods'][0]['title'] . ')'),
+                                  'cost' =&gt; $quote[0]['methods'][0]['cost']);
+
+                $osC_Session-&gt;set('shipping', $shipping);
+
+                tep_redirect(tep_href_link(FILENAME_CHECKOUT, 'payment', 'SSL'));
+              }
+            }
+          } else {
+            $osC_Session-&gt;remove('shipping');
+          }
+        }
+      } else {
+        $osC_Session-&gt;set('shipping', false);
+
+        tep_redirect(tep_href_link(FILENAME_CHECKOUT, 'payment', 'SSL'));
+      }
+    }
+  }
+?&gt;
</pre></div>
<center><small><a href="http://www.badgers-in-foil.co.uk/projects/cvsspam/" title="commit -&gt; email">CVSspam</a> 0.2.9</small></center>
</body></html>


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click