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

hpdl-OfajU3CKLf1/[email protected] 30 Mar 2005 00:08:22 -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_payment.php</span></a></tt></td><td align="right" id="added">+229</td><td></td><td nowrap="nowrap" align="right">added <a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/content/pages/checkout_payment.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">payment.php</span></a></tt></td><td align="right" id="added">+105</td><td></td><td nowrap="nowrap" align="right">added <a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/modules/checkout/payment.php?rev=1.1&amp;content-type=text/vnd.viewcvs-markup">1.1</a></td></tr>
<tr><td></td><td align="right" id="added">+334</td><td></td><td></td></tr>
</table>
<small id="info">2 added files</small><br />
<pre class="comment">
the new checkout payment page based on a CSS layout, and the new payment
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_payment.php</b></big> <small id="info">added at <a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/content/pages/checkout_payment.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_payment.php
--- /dev/null	Wed Mar 30 02:08:08 2005
+++ /tmp/cvsAAA7zaWI3	Wed Mar 30 02:08:17 2005
@@ -0,0 +1,229 @@
</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_payment.payment[0]) {
+    document.checkout_payment.payment[buttonSelect].checked=true;
+  } else {
+    document.checkout_payment.payment.checked=true;
+  }
+}
+//--&gt;&lt;/script&gt;
+
+&lt;?php echo $payment_modules-&gt;javascript_validation(); ?&gt;
+
+&lt;div class="pageHeading"&gt;
+  &lt;span class="pageHeadingImage"&gt;&lt;?php echo tep_image(DIR_WS_IMAGES . 'table_background_payment.gif', HEADING_TITLE_CHECKOUT_PAYMENT, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?&gt;&lt;/span&gt;
+
+  &lt;h1&gt;&lt;?php echo HEADING_TITLE_CHECKOUT_PAYMENT; ?&gt;&lt;/h1&gt;
+&lt;/div&gt;
+
+&lt;?php
+  if ($messageStack-&gt;size('checkout_payment') &gt; 0) {
+    echo $messageStack-&gt;output('checkout_payment');
+  }
+?&gt;
+
+&lt;form name="checkout_payment" action="&lt;?php echo tep_href_link(FILENAME_CHECKOUT, 'confirmation', 'SSL'); ?&gt;" method="post" onsubmit="return check_form();"&gt;
+
+&lt;?php
+  if (DISPLAY_CONDITIONS_ON_CHECKOUT == 'true') {
+?&gt;
+
+&lt;div class="moduleBox"&gt;
+  &lt;div class="outsideHeading"&gt;&lt;?php echo TABLE_HEADING_CONDITIONS; ?&gt;&lt;/div&gt;
+
+  &lt;div class="content"&gt;
+    &lt;?php echo TEXT_CONDITIONS_DESCRIPTION . '&lt;br&gt;&lt;br&gt;' . osc_draw_checkbox_field('conditions', '1', false, 'id="conditions"') . '&lt;label for="conditions"&gt;&amp;nbsp;' . TEXT_CONDITIONS_CONFIRM . '&lt;/label&gt;'; ?&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_BILLING_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('billto'), 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_BILLING_ADDRESS . '&lt;/b&gt;&lt;br&gt;' . tep_image(DIR_WS_IMAGES . 'arrow_south_east.gif'); ?&gt;
+    &lt;/div&gt;
+
+    &lt;?php echo TEXT_SELECTED_BILLING_DESTINATION; ?&gt;&lt;br&gt;&lt;br&gt;&lt;?php echo '&lt;a href="' . tep_href_link(FILENAME_CHECKOUT, 'payment_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;div class="moduleBox"&gt;
+  &lt;div class="outsideHeading"&gt;&lt;?php echo TABLE_HEADING_PAYMENT_METHOD; ?&gt;&lt;/div&gt;
+
+  &lt;div class="content"&gt;
+
+&lt;?php
+  $selection = $payment_modules-&gt;selection();
+
+  if (sizeof($selection) &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_SELECT_PAYMENT_METHOD; ?&gt;&lt;/p&gt;
+
+&lt;?php
+  } else {
+?&gt;
+
+    &lt;p style="margin-top: 0px;"&gt;&lt;?php echo TEXT_ENTER_PAYMENT_INFORMATION; ?&gt;&lt;/p&gt;
+
+&lt;?php
+  }
+?&gt;
+
+    &lt;table border="0" width="100%" cellspacing="0" cellpadding="2"&gt;
+
+&lt;?php
+  $radio_buttons = 0;
+  for ($i=0, $n=sizeof($selection); $i&lt;$n; $i++) {
+?&gt;
+      &lt;tr&gt;
+        &lt;td&gt;&lt;?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?&gt;&lt;/td&gt;
+        &lt;td colspan="2"&gt;&lt;table border="0" width="100%" cellspacing="0" cellpadding="2"&gt;
+&lt;?php
+    if ( ($n == 1) || ($selection[$i]['id'] == $osC_Session-&gt;value('payment')) ) {
+      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" colspan="3"&gt;&lt;b&gt;&lt;?php echo $selection[$i]['module']; ?&gt;&lt;/b&gt;&lt;/td&gt;
+            &lt;td class="main" align="right"&gt;&lt;?php echo osc_draw_radio_field('payment', $selection[$i]['id'], $osC_Session-&gt;value('payment')); ?&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($selection[$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="4"&gt;&lt;?php echo $selection[$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
+    } elseif (isset($selection[$i]['fields']) &amp;&amp; is_array($selection[$i]['fields'])) {
+?&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 colspan="4"&gt;&lt;table border="0" cellspacing="0" cellpadding="2"&gt;
+&lt;?php
+      for ($j=0, $n2=sizeof($selection[$i]['fields']); $j&lt;$n2; $j++) {
+?&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"&gt;&lt;?php echo $selection[$i]['fields'][$j]['title']; ?&gt;&lt;/td&gt;
+                &lt;td&gt;&lt;?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?&gt;&lt;/td&gt;
+                &lt;td class="main"&gt;&lt;?php echo $selection[$i]['fields'][$j]['field']; ?&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
+      }
+?&gt;
+            &lt;/table&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
+    }
+?&gt;
+        &lt;/table&gt;&lt;/td&gt;
+        &lt;td&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;/div&gt;
+&lt;/div&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_CONFIRMATION; ?&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_draw_separator('pixel_silver.gif', '1', '5'); ?&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;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&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;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="checkoutBarFrom"&gt;&lt;?php echo '&lt;a href="' . tep_href_link(FILENAME_CHECKOUT, 'shipping', 'SSL') . '" class="checkoutBarFrom"&gt;' . CHECKOUT_BAR_DELIVERY . '&lt;/a&gt;'; ?&gt;&lt;/td&gt;
+    &lt;td align="center" width="25%" class="checkoutBarCurrent"&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>payment.php</b></big> <small id="info">added at <a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/modules/checkout/payment.php?rev=1.1&amp;content-type=text/vnd.viewcvs-markup">1.1</a></small></div>
<pre class="diff"><small id="info">diff -N payment.php
--- /dev/null	Wed Mar 30 02:08:18 2005
+++ /tmp/cvsAAAfWa4J3	Wed Mar 30 02:08:18 2005
@@ -0,0 +1,105 @@
</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
+*/
+
+  class osC_Checkout_Payment {
+
+/* Public variables */
+
+    var $page_contents = 'checkout_payment.php';
+
+/* Private variables */
+
+    var $_module = 'payment';
+
+/* Class constructor */
+
+    function osC_Checkout_Payment() {
+      global $osC_Database, $osC_Session, $osC_Customer, $osC_Services, $breadcrumb, $cart, $total_weight, $total_count, $payment_modules;
+
+      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_PAYMENT, tep_href_link(FILENAME_CHECKOUT, $this-&gt;_module, 'SSL'));
+      }
+
+// if no shipping method has been selected, redirect the customer to the shipping method selection page
+      if ($osC_Session-&gt;exists('shipping') == false) {
+        tep_redirect(tep_href_link(FILENAME_CHECKOUT, 'shipping', 'SSL'));
+      }
+
+// avoid hack attempts during the checkout procedure by checking the internal cartID
+      if (isset($cart-&gt;cartID) &amp;&amp; $osC_Session-&gt;exists('cartID')) {
+        if ($cart-&gt;cartID != $osC_Session-&gt;value('cartID')) {
+          tep_redirect(tep_href_link(FILENAME_CHECKOUT, 'shipping', 'SSL'));
+        }
+      }
+
+// Stock Check
+      if ( (STOCK_CHECK == 'true') &amp;&amp; (STOCK_ALLOW_CHECKOUT != 'true') ) {
+        $products = $cart-&gt;get_products();
+        for ($i=0, $n=sizeof($products); $i&lt;$n; $i++) {
+          if (tep_check_stock($products[$i]['id'], $products[$i]['quantity'])) {
+            tep_redirect(tep_href_link(FILENAME_CHECKOUT, 'SSL'));
+            break;
+          }
+        }
+      }
+
+// redirect to the billing address page when no default address exists
+      if ($osC_Customer-&gt;hasDefaultAddress() === false) {
+        $this-&gt;page_contents = 'payment_address.php';
+      }
+
+// if no billing destination address was selected, use the customers own address as default
+      if ($osC_Session-&gt;exists('billto') == false) {
+        $osC_Session-&gt;set('billto', $osC_Customer-&gt;default_address_id);
+      } else {
+// verify the selected billing 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('billto'));
+        $Qcheck-&gt;execute();
+
+        if ($Qcheck-&gt;valueInt('total') != 1) {
+          $osC_Session-&gt;set('billto', $osC_Customer-&gt;default_address_id);
+
+          $osC_Session-&gt;remove('payment');
+        }
+      }
+
+      $total_weight = $cart-&gt;show_weight();
+      $total_count = $cart-&gt;count_contents();
+
+// load all enabled payment modules
+      require(DIR_WS_CLASSES . 'payment.php');
+      $payment_modules = new payment;
+
+      if (isset($_GET['payment_error']) &amp;&amp; is_object(${$_GET['payment_error']}) &amp;&amp; ($error = ${$_GET['payment_error']}-&gt;get_error())) {
+        $messageStack-&gt;add('checkout_payment', $error['error'], 'error');
+      }
+    }
+
+/* Public methods */
+
+    function getPageContentsFile() {
+      return $this-&gt;page_contents;
+    }
+
+/* Private methods */
+
+    function _process() {
+    }
+  }
+?&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