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

hpdl-OfajU3CKLf1/[email protected] 30 Mar 2005 00:09:16 -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_address.php</span></a></tt></td><td align="right" id="added">+223</td><td></td><td nowrap="nowrap" align="right">added <a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/content/pages/checkout_payment_address.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_address.php</span></a></tt></td><td align="right" id="added">+235</td><td></td><td nowrap="nowrap" align="right">added <a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/modules/checkout/payment_address.php?rev=1.1&amp;content-type=text/vnd.viewcvs-markup">1.1</a></td></tr>
<tr><td></td><td align="right" id="added">+458</td><td></td><td></td></tr>
</table>
<small id="info">2 added files</small><br />
<pre class="comment">
the new checkout billing address page based on a CSS layout, and the new
payment address 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_address.php</b></big> <small id="info">added at <a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/content/pages/checkout_payment_address.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_address.php
--- /dev/null	Wed Mar 30 02:09:09 2005
+++ /tmp/cvsAAA6aayh4	Wed Mar 30 02:09:13 2005
@@ -0,0 +1,223 @@
</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
+*/
+
+  $addresses_count = tep_count_customer_address_book_entries();
+?&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.address[0]) {
+    document.checkout_address.address[buttonSelect].checked=true;
+  } else {
+    document.checkout_address.address.checked=true;
+  }
+}
+
+function check_form_optional(form_name) {
+  var form = form_name;
+
+  var firstname = form.elements['firstname'].value;
+  var lastname = form.elements['lastname'].value;
+  var street_address = form.elements['street_address'].value;
+
+  if (firstname == '' &amp;&amp; lastname == '' &amp;&amp; street_address == '') {
+    return true;
+  } else {
+    return check_form(form_name);
+  }
+}
+//--&gt;&lt;/script&gt;
+
+&lt;?php require('includes/form_check.js.php'); ?&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_PAYMENT_ADDRESS, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?&gt;&lt;/span&gt;
+
+  &lt;h1&gt;&lt;?php echo HEADING_TITLE_CHECKOUT_PAYMENT_ADDRESS; ?&gt;&lt;/h1&gt;
+&lt;/div&gt;
+
+&lt;?php
+  if ($messageStack-&gt;size('checkout_address') &gt; 0) {
+    echo $messageStack-&gt;output('checkout_address');
+  }
+?&gt;
+
+&lt;form name="checkout_address" action="&lt;?php echo tep_href_link(FILENAME_CHECKOUT, 'payment_address=process', 'SSL'); ?&gt;" method="post" onSubmit="return check_form_optional(checkout_address);"&gt;
+
+&lt;?php
+  if ($_GET['payment_address'] != 'process') {
+    if ($osC_Customer-&gt;hasDefaultAddress() === true) {
+?&gt;
+
+&lt;div class="moduleBox"&gt;
+  &lt;div class="outsideHeading"&gt;&lt;?php echo TABLE_HEADING_PAYMENT_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_PAYMENT_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_PAYMENT_DESTINATION; ?&gt;
+  &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;?php
+    }
+
+    if ($addresses_count &gt; 1) {
+?&gt;
+
+&lt;div class="moduleBox"&gt;
+  &lt;div class="outsideHeading"&gt;&lt;?php echo TABLE_HEADING_ADDRESS_BOOK_ENTRIES; ?&gt;&lt;/div&gt;
+
+  &lt;div class="content"&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_OTHER_PAYMENT_DESTINATION; ?&gt;&lt;/p&gt;
+
+    &lt;table border="0" width="100%" cellspacing="0" cellpadding="2"&gt;
+
+&lt;?php
+      $radio_buttons = 0;
+
+      $Qaddresses = $osC_Database-&gt;query('select address_book_id, entry_firstname as firstname, entry_lastname as lastname, entry_company as company, entry_street_address as street_address, entry_suburb as suburb, entry_city as city, entry_postcode as postcode, entry_state as state, entry_zone_id as zone_id, entry_country_id as country_id from :table_address_book where customers_id = :customers_id');
+      $Qaddresses-&gt;bindTable(':table_address_book', TABLE_ADDRESS_BOOK);
+      $Qaddresses-&gt;bindInt(':customers_id', $osC_Customer-&gt;id);
+      $Qaddresses-&gt;execute();
+
+      while ($Qaddresses-&gt;next()) {
+        $format_id = tep_get_address_format_id($Qaddresses-&gt;valueInt('country_id'));
+?&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 ($Qaddresses-&gt;valueInt('address_book_id') == $osC_Session-&gt;value('billto')) {
+          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="2"&gt;&lt;b&gt;&lt;?php echo $Qaddresses-&gt;valueProtected('firstname') . ' ' . $Qaddresses-&gt;valueProtected('lastname'); ?&gt;&lt;/b&gt;&lt;/td&gt;
+            &lt;td class="main" align="right"&gt;&lt;?php echo osc_draw_radio_field('address', $Qaddresses-&gt;valueInt('address_book_id'), $osC_Session-&gt;value('billto')); ?&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&gt;
+            &lt;td width="10"&gt;&lt;?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?&gt;&lt;/td&gt;
+            &lt;td colspan="3"&gt;&lt;table border="0" 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"&gt;&lt;?php echo tep_address_format($format_id, $Qaddresses-&gt;toArray(), true, ' ', ', '); ?&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;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;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;?php
+    }
+  }
+
+  if ($addresses_count &lt; MAX_ADDRESS_BOOK_ENTRIES) {
+?&gt;
+
+&lt;div class="moduleBox"&gt;
+  &lt;div class="outsideHeading"&gt;&lt;?php echo TABLE_HEADING_NEW_PAYMENT_ADDRESS; ?&gt;&lt;/div&gt;
+
+  &lt;div class="content"&gt;
+    &lt;?php echo TEXT_CREATE_NEW_PAYMENT_ADDRESS; ?&gt;
+
+    &lt;div style="margin: 10px 30px 10px 30px;"&gt;
+      &lt;?php require('includes/modules/checkout_new_address.php'); ?&gt;
+    &lt;/div&gt;
+  &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;?php
+  }
+?&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_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_address.php</b></big> <small id="info">added at <a href="http://cvs.oscommerce.com/viewcvs.cgi/catalog/catalog/includes/modules/checkout/payment_address.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_address.php
--- /dev/null	Wed Mar 30 02:09:09 2005
+++ /tmp/cvsAAA2kaGi4	Wed Mar 30 02:09:13 2005
@@ -0,0 +1,235 @@
</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_address {
+
+/* Public variables */
+
+    var $page_contents = 'checkout_payment_address.php';
+
+/* Private variables */
+
+    var $_module = 'payment_address';
+
+/* Class constructor */
+
+    function osC_Checkout_Payment_address() {
+      global $osC_Session, $osC_Services, $breadcrumb, $cart;
+
+      if ($cart-&gt;count_contents() &lt; 1) {
+        tep_redirect(tep_href_link(FILENAME_CHECKOUT, '', 'SSL'));
+      }
+
+// if no billing destination address was selected, use their own address as default
+      if ($osC_Session-&gt;exists('billto') == false) {
+        $osC_Session-&gt;set('billto', $osC_Customer-&gt;default_address_id);
+      }
+
+      if ($osC_Services-&gt;isStarted('breadcrumb')) {
+        $breadcrumb-&gt;add(NAVBAR_TITLE_CHECKOUT_PAYMENT, tep_href_link(FILENAME_CHECKOUT, 'payment', 'SSL'));
+        $breadcrumb-&gt;add(NAVBAR_TITLE_CHECKOUT_PAYMENT_ADDRESS, tep_href_link(FILENAME_CHECKOUT, $this-&gt;_module, 'SSL'));
+      }
+
+      if (($_GET[$this-&gt;_module] == 'process')) {
+        $this-&gt;_process();
+      }
+    }
+
+/* Public methods */
+
+    function getPageContentsFile() {
+      return $this-&gt;page_contents;
+    }
+
+/* Private methods */
+
+    function _process() {
+      global $osC_Database, $osC_Session, $osC_Customer, $messageStack;
+
+// process a new billing address
+      if (($osC_Customer-&gt;hasDefaultAddress() === false) || (tep_not_null($_POST['firstname']) &amp;&amp; tep_not_null($_POST['lastname']) &amp;&amp; tep_not_null($_POST['street_address'])) ) {
+        if (ACCOUNT_GENDER &gt; 0) {
+          if (!isset($_POST['gender']) || (($_POST['gender'] != 'm') &amp;&amp; ($_POST['gender'] != 'f'))) {
+            $messageStack-&gt;add('checkout_address', ENTRY_GENDER_ERROR);
+          }
+        }
+
+        if (!isset($_POST['firstname']) || (strlen(trim($_POST['firstname'])) &lt; ACCOUNT_FIRST_NAME)) {
+          $messageStack-&gt;add('checkout_address', ENTRY_FIRST_NAME_ERROR);
+        }
+
+        if (!isset($_POST['lastname']) || (strlen(trim($_POST['lastname'])) &lt; ACCOUNT_LAST_NAME)) {
+          $messageStack-&gt;add('checkout_address', ENTRY_LAST_NAME_ERROR);
+        }
+
+        if (ACCOUNT_COMPANY &gt; 0) {
+          if (!isset($_POST['company']) || (strlen(trim($_POST['company'])) &lt; ACCOUNT_COMPANY)) {
+            $messageStack-&gt;add('checkout_address', ENTRY_COMPANY_ERROR);
+          }
+        }
+
+        if (!isset($_POST['street_address']) || (strlen(trim($_POST['street_address'])) &lt; ACCOUNT_STREET_ADDRESS)) {
+          $messageStack-&gt;add('checkout_address', ENTRY_STREET_ADDRESS_ERROR);
+        }
+
+        if (ACCOUNT_SUBURB &gt; 0) {
+          if (!isset($_POST['suburb']) || (strlen(trim($_POST['suburb'])) &lt; ACCOUNT_SUBURB)) {
+            $messageStack-&gt;add('checkout_address', ENTRY_SUBURB_ERROR);
+          }
+        }
+
+        if (!isset($_POST['postcode']) || (strlen(trim($_POST['postcode'])) &lt; ACCOUNT_POST_CODE)) {
+          $messageStack-&gt;add('checkout_address', ENTRY_POST_CODE_ERROR);
+        }
+
+        if (!isset($_POST['city']) || (strlen(trim($_POST['city'])) &lt; ACCOUNT_CITY)) {
+          $messageStack-&gt;add('checkout_address', ENTRY_CITY_ERROR);
+        }
+
+        if (ACCOUNT_STATE &gt; 0) {
+          $zone_id = 0;
+
+          $Qcheck = $osC_Database-&gt;query('select zone_id from :table_zones where zone_country_id = :zone_country_id limit 1');
+          $Qcheck-&gt;bindTable(':table_zones', TABLE_ZONES);
+          $Qcheck-&gt;bindInt(':zone_country_id', $_POST['country']);
+          $Qcheck-&gt;execute();
+
+          $entry_state_has_zones = ($Qcheck-&gt;numberOfRows() &gt; 0);
+
+          $Qcheck-&gt;freeResult();
+
+          if ($entry_state_has_zones === true) {
+            $Qzone = $osC_Database-&gt;query('select zone_id from :table_zones where zone_country_id = :zone_country_id and zone_code like :zone_code');
+            $Qzone-&gt;bindTable(':table_zones', TABLE_ZONES);
+            $Qzone-&gt;bindInt(':zone_country_id', $_POST['country']);
+            $Qzone-&gt;bindValue(':zone_code', $_POST['state']);
+            $Qzone-&gt;execute();
+
+            if ($Qzone-&gt;numberOfRows() === 1) {
+              $zone_id = $Qzone-&gt;valueInt('zone_id');
+            } else {
+              $Qzone = $osC_Database-&gt;query('select zone_id from :table_zones where zone_country_id = :zone_country_id and zone_name like :zone_name');
+              $Qzone-&gt;bindTable(':table_zones', TABLE_ZONES);
+              $Qzone-&gt;bindInt(':zone_country_id', $_POST['country']);
+              $Qzone-&gt;bindValue(':zone_name', $_POST['state'] . '%');
+              $Qzone-&gt;execute();
+
+              if ($Qzone-&gt;numberOfRows() === 1) {
+                $zone_id = $Qzone-&gt;valueInt('zone_id');
+              } else {
+                $messageStack-&gt;add('checkout_address', ENTRY_STATE_ERROR_SELECT);
+              }
+            }
+
+            $Qzone-&gt;freeResult();
+          } else {
+            if (strlen(trim($_POST['state'])) &lt; ACCOUNT_STATE) {
+              $messageStack-&gt;add('checkout_address', ENTRY_STATE_ERROR);
+            }
+          }
+        }
+
+        if ( (is_numeric($_POST['country']) === false) || ($_POST['country'] &lt; 1) ) {
+          $messageStack-&gt;add('checkout_address', ENTRY_COUNTRY_ERROR);
+        }
+
+        if (ACCOUNT_TELEPHONE &gt; 0) {
+          if (!isset($_POST['telephone']) || (strlen(trim($_POST['telephone'])) &lt; ACCOUNT_TELEPHONE)) {
+            $messageStack-&gt;add('checkout_address', ENTRY_TELEPHONE_NUMBER_ERROR);
+          }
+        }
+
+        if (ACCOUNT_FAX &gt; 0) {
+          if (!isset($_POST['fax']) || (strlen(trim($_POST['fax'])) &lt; ACCOUNT_FAX)) {
+            $messageStack-&gt;add('checkout_address', ENTRY_FAX_NUMBER_ERROR);
+          }
+        }
+
+        if ($messageStack-&gt;size('checkout_address') === 0) {
+          $Qab = $osC_Database-&gt;query('insert into :table_address_book (customers_id, entry_gender, entry_company, entry_firstname, entry_lastname, entry_street_address, entry_suburb, entry_postcode, entry_city, entry_state, entry_country_id, entry_zone_id, entry_telephone, entry_fax) values (:customers_id, :entry_gender, :entry_company, :entry_firstname, :entry_lastname, :entry_street_address, :entry_suburb, :entry_postcode, :entry_city, :entry_state, :entry_country_id, :entry_zone_id, :entry_telephone, :entry_fax)');
+          $Qab-&gt;bindTable(':table_address_book', TABLE_ADDRESS_BOOK);
+          $Qab-&gt;bindInt(':customers_id', $osC_Customer-&gt;id);
+          $Qab-&gt;bindValue(':entry_gender', (((ACCOUNT_GENDER &gt; -1) &amp;&amp; isset($_POST['gender']) &amp;&amp; (($_POST['gender'] == 'm') || ($_POST['gender'] == 'f'))) ? $_POST['gender'] : ''));
+          $Qab-&gt;bindValue(':entry_company', ((ACCOUNT_COMPANY &gt; -1) ? trim($_POST['company']) : ''));
+          $Qab-&gt;bindValue(':entry_firstname', trim($_POST['firstname']));
+          $Qab-&gt;bindValue(':entry_lastname', trim($_POST['lastname']));
+          $Qab-&gt;bindValue(':entry_street_address', trim($_POST['street_address']));
+          $Qab-&gt;bindValue(':entry_suburb', ((ACCOUNT_SUBURB &gt; -1) ? trim($_POST['suburb']) : ''));
+          $Qab-&gt;bindValue(':entry_postcode', trim($_POST['postcode']));
+          $Qab-&gt;bindValue(':entry_city', trim($_POST['city']));
+          $Qab-&gt;bindValue(':entry_state', ((ACCOUNT_STATE &gt; -1) ? (($zone_id &gt; 0) ? '' : trim($_POST['state'])) : ''));
+          $Qab-&gt;bindInt(':entry_country_id', $_POST['country']);
+          $Qab-&gt;bindInt(':entry_zone_id', ((ACCOUNT_STATE &gt; -1) ? (($zone_id &gt; 0) ? $zone_id : 0) : ''));
+          $Qab-&gt;bindValue(':entry_telephone', ((ACCOUNT_TELEPHONE &gt; -1) ? trim($_POST['telephone']) : ''));
+          $Qab-&gt;bindValue(':entry_fax', ((ACCOUNT_FAX &gt; -1) ? trim($_POST['fax']) : ''));
+          $Qab-&gt;execute();
+
+          if ($Qab-&gt;affectedRows() === 1) {
+            $address_book_id = $osC_Database-&gt;nextID();
+
+            if ($osC_Customer-&gt;hasDefaultAddress() === false) {
+              $Qcustomer = $osC_Database-&gt;query('update :table_customers set customers_default_address_id = :customers_default_address_id where customers_id = :customers_id');
+              $Qcustomer-&gt;bindTable(':table_customers', TABLE_CUSTOMERS);
+              $Qcustomer-&gt;bindInt(':customers_default_address_id', $address_book_id);
+              $Qcustomer-&gt;bindInt(':customers_id', $osC_Customer-&gt;id);
+              $Qcustomer-&gt;execute();
+
+              $osC_Customer-&gt;setCountryID($_POST['country']);
+              $osC_Customer-&gt;setZoneID($zone_id);
+              $osC_Customer-&gt;setDefaultAddressID($address_book_id);
+            }
+
+            $osC_Session-&gt;set('billto', $address_book_id);
+            $osC_Session-&gt;remove('payment');
+
+            tep_redirect(tep_href_link(FILENAME_CHECKOUT, 'payment', 'SSL'));
+          } else {
+            $messageStack-&gt;add('checkout_address', 'Error inserting into address book table.');
+          }
+        }
+// process the selected billing destination
+      } elseif (isset($_POST['address'])) {
+        $reset_payment = false;
+        if ($osC_Session-&gt;exists('billto')) {
+          if ($osC_Session-&gt;value('billto') != $_POST['address']) {
+            if ($osC_Session-&gt;exists('payment')) {
+              $reset_payment = true;
+            }
+          }
+        }
+
+        $osC_Session-&gt;set('billto', $_POST['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) {
+          if ($reset_payment == true) {
+            $osC_Session-&gt;remove('payment');
+          }
+
+          tep_redirect(tep_href_link(FILENAME_CHECKOUT, 'payment', 'SSL'));
+        } else {
+          $osC_Session-&gt;remove('billto');
+        }
+// no addresses to select from - customer decided to keep the current assigned address
+      } else {
+        $osC_Session-&gt;set('billto', $osC_Customer-&gt;default_address_id);
+
+        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