[phpBB Debug] PHP Warning: in file [ROOT]/includes/crs/crs_misc_functions.php on line 37: mime_content_type(): Empty filename or path
[phpBB Debug] PHP Warning: in file [ROOT]/includes/crs/crs_misc_functions.php on line 37: mime_content_type(): Empty filename or path
Zen Cart 源代码 customers.php

Zen Cart 源代码 customers.php




下载文件

文件名: customers.php
文件类型: PHP文件
文件大小: 65.3 KiB
MD5: 587208ca8331696e41983b13a219bb62

customers.php - 关闭高亮
  1. <?php
  2. /**
  3.  * @package admin
  4.  * @copyright Copyright 2003-2014 Zen Cart Development Team
  5.  * @copyright Portions Copyright 2003 osCommerce
  6.  * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
  7.  * @version GIT: $Id: Author: DrByte  Jun 30 2014 Modified in v1.5.4 $
  8.  */
  9.  
  10.   require('includes/application_top.php');
  11.  
  12.   require(DIR_WS_CLASSES . 'currencies.php');
  13.   $currencies = new currencies();
  14.  
  15.   $action = (isset($_GET['action']) ? $_GET['action'] : '');
  16.   $customers_id = zen_db_prepare_input($_GET['cID']);
  17.   if (isset($_POST['cID'])) $customers_id = zen_db_prepare_input($_POST['cID']);
  18.  
  19.   $error = false;
  20.   $processed = false;
  21.  
  22.   if (zen_not_null($action)) {
  23.     switch ($action) {
  24.       case 'list_addresses':
  25.         $addresses_query = "SELECT address_book_id, entry_firstname as firstname, entry_lastname as lastname,
  26.                            entry_company as company, entry_street_address as street_address,
  27.                            entry_suburb as suburb, entry_city as city, entry_postcode as postcode,
  28.                            entry_state as state, entry_zone_id as zone_id, entry_country_id as country_id
  29.                    FROM   " . TABLE_ADDRESS_BOOK . "
  30.                    WHERE  customers_id = :customersID
  31.                    ORDER BY firstname, lastname";
  32.  
  33.         $addresses_query = $db->bindVars($addresses_query, ':customersID', $_GET['cID'], 'integer');
  34.         $addresses = $db->Execute($addresses_query);
  35.         $addressArray = array();
  36.         while (!$addresses->EOF) {
  37.           $format_id = zen_get_address_format_id($addresses->fields['country_id']);
  38.  
  39.           $addressArray[] = array('firstname'=>$addresses->fields['firstname'],
  40.                                   'lastname'=>$addresses->fields['lastname'],
  41.                                   'address_book_id'=>$addresses->fields['address_book_id'],
  42.                                   'format_id'=>$format_id,
  43.                                   'address'=>$addresses->fields);
  44.           $addresses->MoveNext();
  45.         }
  46. ?>
  47. <fieldset>
  48. <legend><?php echo ADDRESS_BOOK_TITLE; ?></legend>
  49. <div class="alert forward"><?php echo sprintf(TEXT_MAXIMUM_ENTRIES, MAX_ADDRESS_BOOK_ENTRIES); ?></div>
  50. <br class="clearBoth" />
  51. <?php
  52. /**
  53.  * Used to loop thru and display address book entries
  54.  */
  55.   foreach ($addressArray as $addresses) {
  56. ?>
  57. <h3 class="addressBookDefaultName"><?php echo zen_output_string_protected($addresses['firstname'] . ' ' . $addresses['lastname']); ?><?php if ($addresses['address_book_id'] == zen_get_customers_address_primary($_GET['cID'])) echo '&nbsp;' . PRIMARY_ADDRESS ; ?></h3>
  58. <address><?php echo zen_address_format($addresses['format_id'], $addresses['address'], true, ' ', '<br />'); ?></address>
  59.  
  60. <br class="clearBoth" />
  61. <?php } // end list ?>
  62. <div class="buttonRow forward"><?php echo '<a href="' . zen_href_link(FILENAME_CUSTOMERS, 'action=list_addresses_done' . '&cID=' . $_GET['cID'] . ($_GET['page'] > 0 ? '&page=' . $_GET['page'] : ''), 'NONSSL') . '">' . zen_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>'; ?>
  63. </fieldset>
  64. <?php
  65.         die();
  66.         break;
  67.       case 'list_addresses_done':
  68.         $action = '';
  69.         zen_redirect(zen_href_link(FILENAME_CUSTOMERS, 'cID=' . (int)$_GET['cID'] . '&page=' . $_GET['page'], 'NONSSL'));
  70.         break;
  71.       case 'status':
  72.         if (isset($_POST['current']) && is_numeric($_POST['current']))
  73.         {
  74.           if ($_POST['current'] == CUSTOMERS_APPROVAL_AUTHORIZATION) {
  75.             $sql = "update " . TABLE_CUSTOMERS . " set customers_authorization=0 where customers_id='" . (int)$customers_id . "'";
  76.             $custinfo = $db->Execute("select customers_email_address, customers_firstname, customers_lastname
  77.                                      from " . TABLE_CUSTOMERS . "
  78.                                      where customers_id = '" . (int)$customers_id . "'");
  79.             if ((int)CUSTOMERS_APPROVAL_AUTHORIZATION > 0 && (int)$_POST['current'] > 0 && $custinfo->RecordCount() > 0) {
  80.               $message = EMAIL_CUSTOMER_STATUS_CHANGE_MESSAGE;
  81.               $html_msg['EMAIL_MESSAGE_HTML'] = EMAIL_CUSTOMER_STATUS_CHANGE_MESSAGE ;
  82.               zen_mail($custinfo->fields['customers_firstname'] . ' ' . $custinfo->fields['customers_lastname'], $custinfo->fields['customers_email_address'], EMAIL_CUSTOMER_STATUS_CHANGE_SUBJECT , $message, STORE_NAME, EMAIL_FROM, $html_msg, 'default');
  83.             }
  84.             zen_record_admin_activity('Customer-approval-authorization set customer auth status to 0 for customer ID ' . (int)$customers_id, 'info');
  85.           } else {
  86.             $sql = "update " . TABLE_CUSTOMERS . " set customers_authorization='" . CUSTOMERS_APPROVAL_AUTHORIZATION . "' where customers_id='" . (int)$customers_id . "'";
  87.             zen_record_admin_activity('Customer-approval-authorization set customer auth status to ' . CUSTOMERS_APPROVAL_AUTHORIZATION . ' for customer ID ' . (int)$customers_id, 'info');
  88.           }
  89.           $db->Execute($sql);
  90.           $action = '';
  91.           zen_redirect(zen_href_link(FILENAME_CUSTOMERS, 'cID=' . (int)$customers_id . '&page=' . $_GET['page'], 'NONSSL'));
  92.         }
  93.         $action = '';
  94.         break;
  95.       case 'update':
  96.         $customers_firstname = zen_db_prepare_input(zen_sanitize_string($_POST['customers_firstname']));
  97.         $customers_lastname = zen_db_prepare_input(zen_sanitize_string($_POST['customers_lastname']));
  98.         $customers_email_address = zen_db_prepare_input($_POST['customers_email_address']);
  99.         $customers_telephone = zen_db_prepare_input($_POST['customers_telephone']);
  100.         $customers_fax = zen_db_prepare_input($_POST['customers_fax']);
  101.         $customers_newsletter = zen_db_prepare_input($_POST['customers_newsletter']);
  102.         $customers_group_pricing = (int)zen_db_prepare_input($_POST['customers_group_pricing']);
  103.         $customers_email_format = zen_db_prepare_input($_POST['customers_email_format']);
  104.         $customers_gender = zen_db_prepare_input($_POST['customers_gender']);
  105.         $customers_dob = (empty($_POST['customers_dob']) ? zen_db_prepare_input('0001-01-01 00:00:00') : zen_db_prepare_input($_POST['customers_dob']));
  106.  
  107.         $customers_authorization = zen_db_prepare_input($_POST['customers_authorization']);
  108.         $customers_referral= zen_db_prepare_input($_POST['customers_referral']);
  109.  
  110.         if (CUSTOMERS_APPROVAL_AUTHORIZATION == 2 and $customers_authorization == 1) {
  111.           $customers_authorization = 2;
  112.           $messageStack->add_session(ERROR_CUSTOMER_APPROVAL_CORRECTION2, 'caution');
  113.         }
  114.  
  115.         if (CUSTOMERS_APPROVAL_AUTHORIZATION == 1 and $customers_authorization == 2) {
  116.           $customers_authorization = 1;
  117.           $messageStack->add_session(ERROR_CUSTOMER_APPROVAL_CORRECTION1, 'caution');
  118.         }
  119.  
  120.         $default_address_id = zen_db_prepare_input($_POST['default_address_id']);
  121.         $entry_street_address = zen_db_prepare_input($_POST['entry_street_address']);
  122.         $entry_suburb = zen_db_prepare_input($_POST['entry_suburb']);
  123.         $entry_postcode = zen_db_prepare_input($_POST['entry_postcode']);
  124.         $entry_city = zen_db_prepare_input($_POST['entry_city']);
  125.         $entry_country_id = zen_db_prepare_input($_POST['entry_country_id']);
  126.  
  127.         $entry_company = zen_db_prepare_input($_POST['entry_company']);
  128.         $entry_state = zen_db_prepare_input($_POST['entry_state']);
  129.         if (isset($_POST['entry_zone_id'])) $entry_zone_id = zen_db_prepare_input($_POST['entry_zone_id']);
  130.  
  131.         if (strlen($customers_firstname) < ENTRY_FIRST_NAME_MIN_LENGTH) {
  132.           $error = true;
  133.           $entry_firstname_error = true;
  134.         } else {
  135.           $entry_firstname_error = false;
  136.         }
  137.  
  138.         if (strlen($customers_lastname) < ENTRY_LAST_NAME_MIN_LENGTH) {
  139.           $error = true;
  140.           $entry_lastname_error = true;
  141.         } else {
  142.           $entry_lastname_error = false;
  143.         }
  144.  
  145.         if (ACCOUNT_DOB == 'true') {
  146.           if (ENTRY_DOB_MIN_LENGTH >0) {
  147.             if (checkdate(substr(zen_date_raw($customers_dob), 4, 2), substr(zen_date_raw($customers_dob), 6, 2), substr(zen_date_raw($customers_dob), 0, 4))) {
  148.               $entry_date_of_birth_error = false;
  149.             } else {
  150.               $error = true;
  151.               $entry_date_of_birth_error = true;
  152.             }
  153.           }
  154.         } else {
  155.             $customers_dob = '0001-01-01 00:00:00';
  156.         }
  157.  
  158.         if (strlen($customers_email_address) < ENTRY_EMAIL_ADDRESS_MIN_LENGTH) {
  159.           $error = true;
  160.           $entry_email_address_error = true;
  161.         } else {
  162.           $entry_email_address_error = false;
  163.         }
  164.  
  165.         if (!zen_validate_email($customers_email_address)) {
  166.           $error = true;
  167.           $entry_email_address_check_error = true;
  168.         } else {
  169.           $entry_email_address_check_error = false;
  170.         }
  171.  
  172.         if (strlen($entry_street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH) {
  173.           $error = true;
  174.           $entry_street_address_error = true;
  175.         } else {
  176.           $entry_street_address_error = false;
  177.         }
  178.  
  179.         if (strlen($entry_postcode) < ENTRY_POSTCODE_MIN_LENGTH) {
  180.           $error = true;
  181.           $entry_post_code_error = true;
  182.         } else {
  183.           $entry_post_code_error = false;
  184.         }
  185.  
  186.         if (strlen($entry_city) < ENTRY_CITY_MIN_LENGTH) {
  187.           $error = true;
  188.           $entry_city_error = true;
  189.         } else {
  190.           $entry_city_error = false;
  191.         }
  192.  
  193.         if ($entry_country_id == false) {
  194.           $error = true;
  195.           $entry_country_error = true;
  196.         } else {
  197.           $entry_country_error = false;
  198.         }
  199.  
  200.         if (ACCOUNT_STATE == 'true') {
  201.           if ($entry_country_error == true) {
  202.             $entry_state_error = true;
  203.           } else {
  204.             $zone_id = 0;
  205.             $entry_state_error = false;
  206.             $check_value = $db->Execute("select count(*) as total
  207.                                         from " . TABLE_ZONES . "
  208.                                         where zone_country_id = '" . (int)$entry_country_id . "'");
  209.  
  210.             $entry_state_has_zones = ($check_value->fields['total'] > 0);
  211.             if ($entry_state_has_zones == true) {
  212.               $zone_query = $db->Execute("select zone_id
  213.                                          from " . TABLE_ZONES . "
  214.                                          where zone_country_id = '" . (int)$entry_country_id . "'
  215.                                          and zone_name = '" . zen_db_input($entry_state) . "'");
  216.  
  217.               if ($zone_query->RecordCount() > 0) {
  218.                 $entry_zone_id = $zone_query->fields['zone_id'];
  219.               } else {
  220.                 $error = true;
  221.                 $entry_state_error = true;
  222.               }
  223.             } else {
  224.               if (strlen($entry_state) < (int)ENTRY_STATE_MIN_LENGTH) {
  225.                 $error = true;
  226.                 $entry_state_error = true;
  227.               }
  228.             }
  229.          }
  230.       }
  231.  
  232.       if (strlen($customers_telephone) < ENTRY_TELEPHONE_MIN_LENGTH) {
  233.         $error = true;
  234.         $entry_telephone_error = true;
  235.       } else {
  236.         $entry_telephone_error = false;
  237.       }
  238.  
  239.       $check_email = $db->Execute("select customers_email_address
  240.                                   from " . TABLE_CUSTOMERS . "
  241.                                   where customers_email_address = '" . zen_db_input($customers_email_address) . "'
  242.                                   and customers_id != '" . (int)$customers_id . "'");
  243.  
  244.       if ($check_email->RecordCount() > 0) {
  245.         $error = true;
  246.         $entry_email_address_exists = true;
  247.       } else {
  248.         $entry_email_address_exists = false;
  249.       }
  250.  
  251.       if ($error == false) {
  252.  
  253.         $sql_data_array = array('customers_firstname' => $customers_firstname,
  254.                                 'customers_lastname' => $customers_lastname,
  255.                                 'customers_email_address' => $customers_email_address,
  256.                                 'customers_telephone' => $customers_telephone,
  257.                                 'customers_fax' => $customers_fax,
  258.                                 'customers_group_pricing' => $customers_group_pricing,
  259.                                 'customers_newsletter' => $customers_newsletter,
  260.                                 'customers_email_format' => $customers_email_format,
  261.                                 'customers_authorization' => $customers_authorization,
  262.                                 'customers_referral' => $customers_referral
  263.                                 );
  264.  
  265.         if (ACCOUNT_GENDER == 'true') $sql_data_array['customers_gender'] = $customers_gender;
  266.         if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = ($customers_dob == '0001-01-01 00:00:00' ? '0001-01-01 00:00:00' : zen_date_raw($customers_dob));
  267.  
  268.         zen_db_perform(TABLE_CUSTOMERS, $sql_data_array, 'update', "customers_id = '" . (int)$customers_id . "'");
  269.  
  270.         $db->Execute("update " . TABLE_CUSTOMERS_INFO . "
  271.                      set customers_info_date_account_last_modified = now()
  272.                      where customers_info_id = '" . (int)$customers_id . "'");
  273.  
  274.         if ($entry_zone_id > 0) $entry_state = '';
  275.  
  276.         $sql_data_array = array('entry_firstname' => $customers_firstname,
  277.                                 'entry_lastname' => $customers_lastname,
  278.                                 'entry_street_address' => $entry_street_address,
  279.                                 'entry_postcode' => $entry_postcode,
  280.                                 'entry_city' => $entry_city,
  281.                                 'entry_country_id' => $entry_country_id);
  282.  
  283.         if (ACCOUNT_COMPANY == 'true') $sql_data_array['entry_company'] = $entry_company;
  284.         if (ACCOUNT_SUBURB == 'true') $sql_data_array['entry_suburb'] = $entry_suburb;
  285.  
  286.         if (ACCOUNT_STATE == 'true') {
  287.           if ($entry_zone_id > 0) {
  288.             $sql_data_array['entry_zone_id'] = $entry_zone_id;
  289.             $sql_data_array['entry_state'] = '';
  290.           } else {
  291.             $sql_data_array['entry_zone_id'] = '0';
  292.             $sql_data_array['entry_state'] = $entry_state;
  293.           }
  294.         }
  295.  
  296.         zen_db_perform(TABLE_ADDRESS_BOOK, $sql_data_array, 'update', "customers_id = '" . (int)$customers_id . "' and address_book_id = '" . (int)$default_address_id . "'");
  297.         zen_record_admin_activity('Customer record updated for customer ID ' . (int)$customers_id, 'notice');
  298.         zen_redirect(zen_href_link(FILENAME_CUSTOMERS, zen_get_all_get_params(array('cID', 'action')) . 'cID=' . $customers_id, 'NONSSL'));
  299.  
  300.         } else if ($error == true) {
  301.           $cInfo = new objectInfo($_POST);
  302.           $processed = true;
  303.         }
  304.  
  305.         break;
  306.       case 'deleteconfirm':
  307.         // demo active test
  308.         if (zen_admin_demo()) {
  309.           $_GET['action']= '';
  310.           $messageStack->add_session(ERROR_ADMIN_DEMO, 'caution');
  311.           zen_redirect(zen_href_link(FILENAME_CUSTOMERS, zen_get_all_get_params(array('cID', 'action')), 'NONSSL'));
  312.         }
  313.         $customers_id = zen_db_prepare_input($_POST['cID']);
  314.  
  315.         if (isset($_POST['delete_reviews']) && ($_POST['delete_reviews'] == 'on')) {
  316.           $reviews = $db->Execute("select reviews_id
  317.                                   from " . TABLE_REVIEWS . "
  318.                                   where customers_id = '" . (int)$customers_id . "'");
  319.           while (!$reviews->EOF) {
  320.             $db->Execute("delete from " . TABLE_REVIEWS_DESCRIPTION . "
  321.                          where reviews_id = '" . (int)$reviews->fields['reviews_id'] . "'");
  322.             $reviews->MoveNext();
  323.           }
  324.  
  325.           $db->Execute("delete from " . TABLE_REVIEWS . "
  326.                        where customers_id = '" . (int)$customers_id . "'");
  327.         } else {
  328.           $db->Execute("update " . TABLE_REVIEWS . "
  329.                        set customers_id = null
  330.                        where customers_id = '" . (int)$customers_id . "'");
  331.         }
  332.  
  333.         $db->Execute("delete from " . TABLE_ADDRESS_BOOK . "
  334.                      where customers_id = '" . (int)$customers_id . "'");
  335.  
  336.         $db->Execute("delete from " . TABLE_CUSTOMERS . "
  337.                      where customers_id = '" . (int)$customers_id . "'");
  338.  
  339.         $db->Execute("delete from " . TABLE_CUSTOMERS_INFO . "
  340.                      where customers_info_id = '" . (int)$customers_id . "'");
  341.  
  342.         $db->Execute("delete from " . TABLE_CUSTOMERS_BASKET . "
  343.                      where customers_id = '" . (int)$customers_id . "'");
  344.  
  345.         $db->Execute("delete from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . "
  346.                      where customers_id = '" . (int)$customers_id . "'");
  347.  
  348.         $db->Execute("delete from " . TABLE_WHOS_ONLINE . "
  349.                      where customer_id = '" . (int)$customers_id . "'");
  350.  
  351.         zen_record_admin_activity('Customer with customer ID ' . (int)$customers_id . ' deleted.', 'warning');
  352.         zen_redirect(zen_href_link(FILENAME_CUSTOMERS, zen_get_all_get_params(array('cID', 'action')), 'NONSSL'));
  353.         break;
  354.       default:
  355.         $customers = $db->Execute("select c.customers_id, c.customers_gender, c.customers_firstname,
  356.                                          c.customers_lastname, c.customers_dob, c.customers_email_address,
  357.                                          a.entry_company, a.entry_street_address, a.entry_suburb,
  358.                                          a.entry_postcode, a.entry_city, a.entry_state, a.entry_zone_id,
  359.                                          a.entry_country_id, c.customers_telephone, c.customers_fax,
  360.                                          c.customers_newsletter, c.customers_default_address_id,
  361.                                          c.customers_email_format, c.customers_group_pricing,
  362.                                          c.customers_authorization, c.customers_referral
  363.                                  from " . TABLE_CUSTOMERS . " c left join " . TABLE_ADDRESS_BOOK . " a
  364.                                  on c.customers_default_address_id = a.address_book_id
  365.                                  where a.customers_id = c.customers_id
  366.                                  and c.customers_id = '" . (int)$customers_id . "'");
  367.  
  368.         $cInfo = new objectInfo($customers->fields);
  369.     }
  370.   }
  371. ?>
  372. <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
  373. <html <?php echo HTML_PARAMS; ?>>
  374. <head>
  375. <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
  376. <title><?php echo TITLE; ?></title>
  377. <link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
  378. <link rel="stylesheet" type="text/css" href="includes/cssjsmenuhover.css" media="all" id="hoverJS">
  379. <script language="javascript" src="includes/menu.js"></script>
  380. <script language="javascript" src="includes/general.js"></script>
  381. <?php
  382.   if ($action == 'edit' || $action == 'update') {
  383. ?>
  384. <script language="javascript"><!--
  385.  
  386. function check_form() {
  387.   var error = 0;
  388.   var error_message = "<?php echo JS_ERROR; ?>";
  389.  
  390.   var customers_firstname = document.customers.customers_firstname.value;
  391.   var customers_lastname = document.customers.customers_lastname.value;
  392. <?php if (ACCOUNT_COMPANY == 'true') echo 'var entry_company = document.customers.entry_company.value;' . "\n"; ?>
  393. <?php if (ACCOUNT_DOB == 'true') echo 'var customers_dob = document.customers.customers_dob.value;' . "\n"; ?>
  394.   var customers_email_address = document.customers.customers_email_address.value;
  395.   var entry_street_address = document.customers.entry_street_address.value;
  396.   var entry_postcode = document.customers.entry_postcode.value;
  397.   var entry_city = document.customers.entry_city.value;
  398.   var customers_telephone = document.customers.customers_telephone.value;
  399.  
  400. <?php if (ACCOUNT_GENDER == 'true') { ?>
  401.   if (document.customers.customers_gender[0].checked || document.customers.customers_gender[1].checked) {
  402.   } else {
  403.     error_message = error_message + "<?php echo JS_GENDER; ?>";
  404.     error = 1;
  405.   }
  406. <?php } ?>
  407.  
  408.   if (customers_firstname == "" || customers_firstname.length < <?php echo ENTRY_FIRST_NAME_MIN_LENGTH; ?>) {
  409.     error_message = error_message + "<?php echo JS_FIRST_NAME; ?>";
  410.     error = 1;
  411.   }
  412.  
  413.   if (customers_lastname == "" || customers_lastname.length < <?php echo ENTRY_LAST_NAME_MIN_LENGTH; ?>) {
  414.     error_message = error_message + "<?php echo JS_LAST_NAME; ?>";
  415.     error = 1;
  416.   }
  417.  
  418. <?php if (ACCOUNT_DOB == 'true' && ENTRY_DOB_MIN_LENGTH !='') { ?>
  419.   if (customers_dob == "" || customers_dob.length < <?php echo ENTRY_DOB_MIN_LENGTH; ?>) {
  420.     error_message = error_message + "<?php echo JS_DOB; ?>";
  421.     error = 1;
  422.   }
  423. <?php } ?>
  424.  
  425.   if (customers_email_address == "" || customers_email_address.length < <?php echo ENTRY_EMAIL_ADDRESS_MIN_LENGTH; ?>) {
  426.     error_message = error_message + "<?php echo JS_EMAIL_ADDRESS; ?>";
  427.     error = 1;
  428.   }
  429.  
  430.   if (entry_street_address == "" || entry_street_address.length < <?php echo ENTRY_STREET_ADDRESS_MIN_LENGTH; ?>) {
  431.     error_message = error_message + "<?php echo JS_ADDRESS; ?>";
  432.     error = 1;
  433.   }
  434.  
  435.   if (entry_postcode == "" || entry_postcode.length < <?php echo ENTRY_POSTCODE_MIN_LENGTH; ?>) {
  436.     error_message = error_message + "<?php echo JS_POST_CODE; ?>";
  437.     error = 1;
  438.   }
  439.  
  440.   if (entry_city == "" || entry_city.length < <?php echo ENTRY_CITY_MIN_LENGTH; ?>) {
  441.     error_message = error_message + "<?php echo JS_CITY; ?>";
  442.     error = 1;
  443.   }
  444.  
  445. <?php
  446.   if (ACCOUNT_STATE == 'true') {
  447. ?>
  448.   if (document.customers.elements['entry_state'].type != "hidden") {
  449.     if (document.customers.entry_state.value == '' || document.customers.entry_state.value.length < <?php echo ENTRY_STATE_MIN_LENGTH; ?> ) {
  450.        error_message = error_message + "<?php echo JS_STATE; ?>";
  451.        error = 1;
  452.     }
  453.   }
  454. <?php
  455.   }
  456. ?>
  457.  
  458.   if (document.customers.elements['entry_country_id'].type != "hidden") {
  459.     if (document.customers.entry_country_id.value == 0) {
  460.       error_message = error_message + "<?php echo JS_COUNTRY; ?>";
  461.       error = 1;
  462.     }
  463.   }
  464.  
  465.   minTelephoneLength = <?php echo (int)ENTRY_TELEPHONE_MIN_LENGTH; ?>;
  466.   if (minTelephoneLength > 0 && customers_telephone.length < minTelephoneLength) {
  467.     error_message = error_message + "<?php echo JS_TELEPHONE; ?>";
  468.     error = 1;
  469.   }
  470.  
  471.   if (error == 1) {
  472.     alert(error_message);
  473.     return false;
  474.   } else {
  475.     return true;
  476.   }
  477. }
  478. //--></script>
  479. <?php
  480.   }
  481. ?>
  482. <script type="text/javascript">
  483.   <!--
  484.   function init()
  485.   {
  486.     cssjsmenu('navbar');
  487.     if (document.getElementById)
  488.     {
  489.       var kill = document.getElementById('hoverJS');
  490.       kill.disabled = true;
  491.     }
  492.   }
  493.   // -->
  494. </script>
  495. </head>
  496. <body onLoad="init()">
  497. <!-- header //-->
  498. <?php require(DIR_WS_INCLUDES . 'header.php'); ?>
  499. <!-- header_eof //-->
  500.  
  501. <!-- body //-->
  502. <table border="0" width="100%" cellspacing="2" cellpadding="2">
  503.   <tr>
  504. <!-- body_text //-->
  505.     <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
  506. <?php
  507.   if ($action == 'edit' || $action == 'update') {
  508.     $newsletter_array = array(array('id' => '1', 'text' => ENTRY_NEWSLETTER_YES),
  509.                               array('id' => '0', 'text' => ENTRY_NEWSLETTER_NO));
  510. ?>
  511.       <tr>
  512.         <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
  513.           <tr>
  514.             <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
  515.             <td class="pageHeading" align="right"><?php echo zen_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
  516.           </tr>
  517.         </table></td>
  518.       </tr>
  519.       <tr>
  520.         <td><?php echo zen_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  521.       </tr>
  522.       <tr><?php echo zen_draw_form('customers', FILENAME_CUSTOMERS, zen_get_all_get_params(array('action')) . 'action=update', 'post', 'onsubmit="return check_form(customers);"', true) . zen_draw_hidden_field('default_address_id', $cInfo->customers_default_address_id);
  523.            echo zen_hide_session_id(); ?>
  524.         <td class="formAreaTitle"><?php echo CATEGORY_PERSONAL; ?></td>
  525.       </tr>
  526.       <tr>
  527.         <td class="formArea"><table border="0" cellspacing="2" cellpadding="2">
  528. <?php
  529.     if (ACCOUNT_GENDER == 'true') {
  530. ?>
  531.           <tr>
  532.             <td class="main"><?php echo ENTRY_GENDER; ?></td>
  533.             <td class="main">
  534. <?php
  535.     if ($error == true && $entry_gender_error == true) {
  536.       echo zen_draw_radio_field('customers_gender', 'm', false, $cInfo->customers_gender) . '&nbsp;&nbsp;' . MALE . '&nbsp;&nbsp;' . zen_draw_radio_field('customers_gender', 'f', false, $cInfo->customers_gender) . '&nbsp;&nbsp;' . FEMALE . '&nbsp;' . ENTRY_GENDER_ERROR;
  537.     } else {
  538.       echo zen_draw_radio_field('customers_gender', 'm', false, $cInfo->customers_gender) . '&nbsp;&nbsp;' . MALE . '&nbsp;&nbsp;' . zen_draw_radio_field('customers_gender', 'f', false, $cInfo->customers_gender) . '&nbsp;&nbsp;' . FEMALE;
  539.     }
  540. ?></td>
  541.           </tr>
  542. <?php
  543.     }
  544. ?>
  545.  
  546. <?php
  547.   $customers_authorization_array = array(array('id' => '0', 'text' => CUSTOMERS_AUTHORIZATION_0),
  548.                                 array('id' => '1', 'text' => CUSTOMERS_AUTHORIZATION_1),
  549.                                 array('id' => '2', 'text' => CUSTOMERS_AUTHORIZATION_2),
  550.                                 array('id' => '3', 'text' => CUSTOMERS_AUTHORIZATION_3),
  551.                                 array('id' => '4', 'text' => CUSTOMERS_AUTHORIZATION_4), // banned
  552.                                 );
  553. ?>
  554.           <tr>
  555.             <td class="main"><?php echo CUSTOMERS_AUTHORIZATION; ?></td>
  556.             <td class="main">
  557.               <?php echo zen_draw_pull_down_menu('customers_authorization', $customers_authorization_array, $cInfo->customers_authorization); ?>
  558.             </td>
  559.           </tr>
  560.  
  561.           <tr>
  562.             <td class="main"><?php echo ENTRY_FIRST_NAME; ?></td>
  563.             <td class="main">
  564. <?php
  565.   if ($error == true) {
  566.     if ($entry_firstname_error == true) {
  567.       echo zen_draw_input_field('customers_firstname', htmlspecialchars($cInfo->customers_firstname, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_CUSTOMERS, 'customers_firstname', 50)) . '&nbsp;' . ENTRY_FIRST_NAME_ERROR;
  568.     } else {
  569.       echo $cInfo->customers_firstname . zen_draw_hidden_field('customers_firstname');
  570.     }
  571.   } else {
  572.     echo zen_draw_input_field('customers_firstname', htmlspecialchars($cInfo->customers_firstname, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_CUSTOMERS, 'customers_firstname', 50), true);
  573.   }
  574. ?></td>
  575.           </tr>
  576.           <tr>
  577.             <td class="main"><?php echo ENTRY_LAST_NAME; ?></td>
  578.             <td class="main">
  579. <?php
  580.   if ($error == true) {
  581.     if ($entry_lastname_error == true) {
  582.       echo zen_draw_input_field('customers_lastname', htmlspecialchars($cInfo->customers_lastname, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_CUSTOMERS, 'customers_lastname', 50)) . '&nbsp;' . ENTRY_LAST_NAME_ERROR;
  583.     } else {
  584.       echo $cInfo->customers_lastname . zen_draw_hidden_field('customers_lastname');
  585.     }
  586.   } else {
  587.     echo zen_draw_input_field('customers_lastname', htmlspecialchars($cInfo->customers_lastname, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_CUSTOMERS, 'customers_lastname', 50), true);
  588.   }
  589. ?></td>
  590.           </tr>
  591. <?php
  592.     if (ACCOUNT_DOB == 'true') {
  593. ?>
  594.           <tr>
  595.             <td class="main"><?php echo ENTRY_DATE_OF_BIRTH; ?></td>
  596.             <td class="main">
  597.  
  598. <?php
  599.     if ($error == true) {
  600.       if ($entry_date_of_birth_error == true) {
  601.         echo zen_draw_input_field('customers_dob', ($cInfo->customers_dob == '0001-01-01 00:00:00' ? '' : zen_date_short($cInfo->customers_dob)), 'maxlength="10"') . '&nbsp;' . ENTRY_DATE_OF_BIRTH_ERROR;
  602.       } else {
  603.         echo $cInfo->customers_dob . ($customers_dob == '0001-01-01 00:00:00' ? 'N/A' : zen_draw_hidden_field('customers_dob'));
  604.       }
  605.     } else {
  606.       echo zen_draw_input_field('customers_dob', ($customers_dob == '0001-01-01 00:00:00' ? '' : zen_date_short($cInfo->customers_dob)), 'maxlength="10"', true);
  607.     }
  608. ?></td>
  609.           </tr>
  610. <?php
  611.     }
  612. ?>
  613.           <tr>
  614.             <td class="main"><?php echo ENTRY_EMAIL_ADDRESS; ?></td>
  615.             <td class="main">
  616. <?php
  617.   if ($error == true) {
  618.     if ($entry_email_address_error == true) {
  619.       echo zen_draw_input_field('customers_email_address', htmlspecialchars($cInfo->customers_email_address, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_CUSTOMERS, 'customers_email_address', 50)) . '&nbsp;' . ENTRY_EMAIL_ADDRESS_ERROR;
  620.     } elseif ($entry_email_address_check_error == true) {
  621.       echo zen_draw_input_field('customers_email_address', htmlspecialchars($cInfo->customers_email_address, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_CUSTOMERS, 'customers_email_address', 50)) . '&nbsp;' . ENTRY_EMAIL_ADDRESS_CHECK_ERROR;
  622.     } elseif ($entry_email_address_exists == true) {
  623.       echo zen_draw_input_field('customers_email_address', htmlspecialchars($cInfo->customers_email_address, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_CUSTOMERS, 'customers_email_address', 50)) . '&nbsp;' . ENTRY_EMAIL_ADDRESS_ERROR_EXISTS;
  624.     } else {
  625.       echo $customers_email_address . zen_draw_hidden_field('customers_email_address');
  626.     }
  627.   } else {
  628.     echo zen_draw_input_field('customers_email_address', htmlspecialchars($cInfo->customers_email_address, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_CUSTOMERS, 'customers_email_address', 50), true);
  629.   }
  630. ?></td>
  631.           </tr>
  632.         </table></td>
  633.       </tr>
  634. <?php
  635.     if (ACCOUNT_COMPANY == 'true') {
  636. ?>
  637.       <tr>
  638.         <td><?php echo zen_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  639.       </tr>
  640.       <tr>
  641.         <td class="formAreaTitle"><?php echo CATEGORY_COMPANY; ?></td>
  642.       </tr>
  643.       <tr>
  644.         <td class="formArea"><table border="0" cellspacing="2" cellpadding="2">
  645.           <tr>
  646.             <td class="main"><?php echo ENTRY_COMPANY; ?></td>
  647.             <td class="main">
  648. <?php
  649.     if ($error == true) {
  650.       if ($entry_company_error == true) {
  651.         echo zen_draw_input_field('entry_company', htmlspecialchars($cInfo->entry_company, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_ADDRESS_BOOK, 'entry_company', 50)) . '&nbsp;' . ENTRY_COMPANY_ERROR;
  652.       } else {
  653.         echo $cInfo->entry_company . zen_draw_hidden_field('entry_company');
  654.       }
  655.     } else {
  656.       echo zen_draw_input_field('entry_company', htmlspecialchars($cInfo->entry_company, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_ADDRESS_BOOK, 'entry_company', 50));
  657.     }
  658. ?></td>
  659.           </tr>
  660.         </table></td>
  661.       </tr>
  662. <?php
  663.     }
  664. ?>
  665.       <tr>
  666.         <td><?php echo zen_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  667.       </tr>
  668.       <tr>
  669.         <td class="formAreaTitle"><?php echo CATEGORY_ADDRESS; ?></td>
  670.       </tr>
  671.       <tr>
  672.         <td class="formArea"><table border="0" cellspacing="2" cellpadding="2">
  673.           <tr>
  674.             <td class="main"><?php echo ENTRY_STREET_ADDRESS; ?></td>
  675.             <td class="main">
  676. <?php
  677.   if ($error == true) {
  678.     if ($entry_street_address_error == true) {
  679.       echo zen_draw_input_field('entry_street_address', htmlspecialchars($cInfo->entry_street_address, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_ADDRESS_BOOK, 'entry_street_address', 50)) . '&nbsp;' . ENTRY_STREET_ADDRESS_ERROR;
  680.     } else {
  681.       echo $cInfo->entry_street_address . zen_draw_hidden_field('entry_street_address');
  682.     }
  683.   } else {
  684.     echo zen_draw_input_field('entry_street_address', htmlspecialchars($cInfo->entry_street_address, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_ADDRESS_BOOK, 'entry_street_address', 50), true);
  685.   }
  686. ?></td>
  687.           </tr>
  688. <?php
  689.     if (ACCOUNT_SUBURB == 'true') {
  690. ?>
  691.           <tr>
  692.             <td class="main"><?php echo ENTRY_SUBURB; ?></td>
  693.             <td class="main">
  694. <?php
  695.     if ($error == true) {
  696.       if ($entry_suburb_error == true) {
  697.         echo zen_draw_input_field('suburb', htmlspecialchars($cInfo->entry_suburb, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_ADDRESS_BOOK, 'entry_suburb', 50)) . '&nbsp;' . ENTRY_SUBURB_ERROR;
  698.       } else {
  699.         echo $cInfo->entry_suburb . zen_draw_hidden_field('entry_suburb');
  700.       }
  701.     } else {
  702.       echo zen_draw_input_field('entry_suburb', htmlspecialchars($cInfo->entry_suburb, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_ADDRESS_BOOK, 'entry_suburb', 50));
  703.     }
  704. ?></td>
  705.           </tr>
  706. <?php
  707.     }
  708. ?>
  709.           <tr>
  710.             <td class="main"><?php echo ENTRY_POST_CODE; ?></td>
  711.             <td class="main">
  712. <?php
  713.   if ($error == true) {
  714.     if ($entry_post_code_error == true) {
  715.       echo zen_draw_input_field('entry_postcode', htmlspecialchars($cInfo->entry_postcode, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_ADDRESS_BOOK, 'entry_postcode', 10)) . '&nbsp;' . ENTRY_POST_CODE_ERROR;
  716.     } else {
  717.       echo $cInfo->entry_postcode . zen_draw_hidden_field('entry_postcode');
  718.     }
  719.   } else {
  720.     echo zen_draw_input_field('entry_postcode', htmlspecialchars($cInfo->entry_postcode, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_ADDRESS_BOOK, 'entry_postcode', 10), true);
  721.   }
  722. ?></td>
  723.           </tr>
  724.           <tr>
  725.             <td class="main"><?php echo ENTRY_CITY; ?></td>
  726.             <td class="main">
  727. <?php
  728.   if ($error == true) {
  729.     if ($entry_city_error == true) {
  730.       echo zen_draw_input_field('entry_city', htmlspecialchars($cInfo->entry_city, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_ADDRESS_BOOK, 'entry_city', 50)) . '&nbsp;' . ENTRY_CITY_ERROR;
  731.     } else {
  732.       echo $cInfo->entry_city . zen_draw_hidden_field('entry_city');
  733.     }
  734.   } else {
  735.     echo zen_draw_input_field('entry_city', htmlspecialchars($cInfo->entry_city, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_ADDRESS_BOOK, 'entry_city', 50), true);
  736.   }
  737. ?></td>
  738.           </tr>
  739. <?php
  740.     if (ACCOUNT_STATE == 'true') {
  741. ?>
  742.           <tr>
  743.             <td class="main"><?php echo ENTRY_STATE; ?></td>
  744.             <td class="main">
  745. <?php
  746.     $entry_state = zen_get_zone_name($cInfo->entry_country_id, $cInfo->entry_zone_id, $cInfo->entry_state);
  747.     if ($error == true) {
  748.       if ($entry_state_error == true) {
  749.         if ($entry_state_has_zones == true) {
  750.           $zones_array = array();
  751.           $zones_values = $db->Execute("select zone_name
  752.                                        from " . TABLE_ZONES . "
  753.                                        where zone_country_id = '" . zen_db_input($cInfo->entry_country_id) . "'
  754.                                        order by zone_name");
  755.  
  756.           while (!$zones_values->EOF) {
  757.             $zones_array[] = array('id' => $zones_values->fields['zone_name'], 'text' => $zones_values->fields['zone_name']);
  758.             $zones_values->MoveNext();
  759.           }
  760.           echo zen_draw_pull_down_menu('entry_state', $zones_array) . '&nbsp;' . ENTRY_STATE_ERROR;
  761.         } else {
  762.           echo zen_draw_input_field('entry_state', htmlspecialchars(zen_get_zone_name($cInfo->entry_country_id, $cInfo->entry_zone_id, $cInfo->entry_state), ENT_COMPAT, CHARSET, TRUE)) . '&nbsp;' . ENTRY_STATE_ERROR;
  763.         }
  764.       } else {
  765.         echo $entry_state . zen_draw_hidden_field('entry_zone_id') . zen_draw_hidden_field('entry_state');
  766.       }
  767.     } else {
  768.       echo zen_draw_input_field('entry_state', htmlspecialchars(zen_get_zone_name($cInfo->entry_country_id, $cInfo->entry_zone_id, $cInfo->entry_state), ENT_COMPAT, CHARSET, TRUE));
  769.     }
  770.  
  771. ?></td>
  772.          </tr>
  773. <?php
  774.     }
  775. ?>
  776.           <tr>
  777.             <td class="main"><?php echo ENTRY_COUNTRY; ?></td>
  778.             <td class="main">
  779. <?php
  780.   if ($error == true) {
  781.     if ($entry_country_error == true) {
  782.       echo zen_draw_pull_down_menu('entry_country_id', zen_get_countries(), $cInfo->entry_country_id) . '&nbsp;' . ENTRY_COUNTRY_ERROR;
  783.     } else {
  784.       echo zen_get_country_name($cInfo->entry_country_id) . zen_draw_hidden_field('entry_country_id');
  785.     }
  786.   } else {
  787.     echo zen_draw_pull_down_menu('entry_country_id', zen_get_countries(), $cInfo->entry_country_id);
  788.   }
  789. ?></td>
  790.           </tr>
  791.         </table></td>
  792.       </tr>
  793.       <tr>
  794.         <td><?php echo zen_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  795.       </tr>
  796.       <tr>
  797.         <td class="formAreaTitle"><?php echo CATEGORY_CONTACT; ?></td>
  798.       </tr>
  799.       <tr>
  800.         <td class="formArea"><table border="0" cellspacing="2" cellpadding="2">
  801.           <tr>
  802.             <td class="main"><?php echo ENTRY_TELEPHONE_NUMBER; ?></td>
  803.             <td class="main">
  804. <?php
  805.   if ($error == true) {
  806.     if ($entry_telephone_error == true) {
  807.       echo zen_draw_input_field('customers_telephone', htmlspecialchars($cInfo->customers_telephone, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_CUSTOMERS, 'customers_telephone', 15)) . '&nbsp;' . ENTRY_TELEPHONE_NUMBER_ERROR;
  808.     } else {
  809.       echo $cInfo->customers_telephone . zen_draw_hidden_field('customers_telephone');
  810.     }
  811.   } else {
  812.     echo zen_draw_input_field('customers_telephone', htmlspecialchars($cInfo->customers_telephone, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_CUSTOMERS, 'customers_telephone', 15), true);
  813.   }
  814. ?></td>
  815.           </tr>
  816. <?php
  817.   if (ACCOUNT_FAX_NUMBER == 'true') {
  818. ?>
  819.           <tr>
  820.             <td class="main"><?php echo ENTRY_FAX_NUMBER; ?></td>
  821.             <td class="main">
  822. <?php
  823.   if ($processed == true) {
  824.     echo $cInfo->customers_fax . zen_draw_hidden_field('customers_fax');
  825.   } else {
  826.     echo zen_draw_input_field('customers_fax', htmlspecialchars($cInfo->customers_fax, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_CUSTOMERS, 'customers_fax', 15));
  827.   }
  828. ?></td>
  829.           </tr>
  830. <?php } ?>
  831.         </table></td>
  832.       </tr>
  833.       <tr>
  834.         <td><?php echo zen_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  835.       </tr>
  836.       <tr>
  837.         <td class="formAreaTitle"><?php echo CATEGORY_OPTIONS; ?></td>
  838.       </tr>
  839.       <tr>
  840.         <td class="formArea"><table border="0" cellspacing="2" cellpadding="2">
  841.  
  842.       <tr>
  843.         <td class="main"><?php echo ENTRY_EMAIL_PREFERENCE; ?></td>
  844.         <td class="main">
  845. <?php
  846. if ($processed == true) {
  847.   if ($cInfo->customers_email_format) {
  848.     echo $customers_email_format . zen_draw_hidden_field('customers_email_format');
  849.   }
  850. } else {
  851.     $email_pref_text = ($cInfo->customers_email_format == 'TEXT') ? true : false;
  852.   $email_pref_html = !$email_pref_text;
  853.   echo zen_draw_radio_field('customers_email_format', 'HTML', $email_pref_html) . '&nbsp;' . ENTRY_EMAIL_HTML_DISPLAY . '&nbsp;&nbsp;&nbsp;' . zen_draw_radio_field('customers_email_format', 'TEXT', $email_pref_text) . '&nbsp;' . ENTRY_EMAIL_TEXT_DISPLAY ;
  854. }
  855. ?></td>
  856.       </tr>
  857.           <tr>
  858.             <td class="main"><?php echo ENTRY_NEWSLETTER; ?></td>
  859.             <td class="main">
  860. <?php
  861.   if ($processed == true) {
  862.     if ($cInfo->customers_newsletter == '1') {
  863.       echo ENTRY_NEWSLETTER_YES;
  864.     } else {
  865.       echo ENTRY_NEWSLETTER_NO;
  866.     }
  867.     echo zen_draw_hidden_field('customers_newsletter');
  868.   } else {
  869.     echo zen_draw_pull_down_menu('customers_newsletter', $newsletter_array, (($cInfo->customers_newsletter == '1') ? '1' : '0'));
  870.   }
  871. ?></td>
  872.           </tr>
  873.           <tr>
  874.             <td class="main"><?php echo ENTRY_PRICING_GROUP; ?></td>
  875.             <td class="main">
  876. <?php
  877.   if ($processed == true) {
  878.     if ($cInfo->customers_group_pricing) {
  879.       $group_query = $db->Execute("select group_name, group_percentage from " . TABLE_GROUP_PRICING . " where group_id = '" . (int)$cInfo->customers_group_pricing . "'");
  880.       echo $group_query->fields['group_name'].'&nbsp;'.$group_query->fields['group_percentage'].'%';
  881.     } else {
  882.       echo ENTRY_NONE;
  883.     }
  884.     echo zen_draw_hidden_field('customers_group_pricing', $cInfo->customers_group_pricing);
  885.   } else {
  886.     $group_array_query = $db->execute("select group_id, group_name, group_percentage from " . TABLE_GROUP_PRICING);
  887.     $group_array[] = array('id'=>0, 'text'=>TEXT_NONE);
  888.     while (!$group_array_query->EOF) {
  889.       $group_array[] = array('id'=>$group_array_query->fields['group_id'], 'text'=>$group_array_query->fields['group_name'].'&nbsp;'.$group_array_query->fields['group_percentage'].'%');
  890.       $group_array_query->MoveNext();
  891.     }
  892.     echo zen_draw_pull_down_menu('customers_group_pricing', $group_array, $cInfo->customers_group_pricing);
  893.   }
  894. ?></td>
  895.           </tr>
  896.  
  897.           <tr>
  898.             <td class="main"><?php echo CUSTOMERS_REFERRAL; ?></td>
  899.             <td class="main">
  900.               <?php echo zen_draw_input_field('customers_referral', htmlspecialchars($cInfo->customers_referral, ENT_COMPAT, CHARSET, TRUE), zen_set_field_length(TABLE_CUSTOMERS, 'customers_referral', 15)); ?>
  901.             </td>
  902.           </tr>
  903.         </table></td>
  904.       </tr>
  905.  
  906.       <tr>
  907.         <td><?php echo zen_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  908.       </tr>
  909.       <tr>
  910.         <td align="right" class="main"><?php echo zen_image_submit('button_update.gif', IMAGE_UPDATE) . ' <a href="' . zen_href_link(FILENAME_CUSTOMERS, zen_get_all_get_params(array('action')), 'NONSSL') .'">' . zen_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>'; ?></td>
  911.       </tr></form>
  912. <?php
  913.   } else {
  914. ?>
  915.       <tr>
  916.         <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
  917.           <tr><?php echo zen_draw_form('search', FILENAME_CUSTOMERS, '', 'get', '', true); ?>
  918.             <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
  919.             <td class="pageHeading" align="right"><?php echo zen_draw_separator('pixel_trans.gif', 1, HEADING_IMAGE_HEIGHT); ?></td>
  920.             <td class="smallText" align="right">
  921. <?php
  922. // show reset search
  923.     if (isset($_GET['search']) && zen_not_null($_GET['search'])) {
  924.       echo '<a href="' . zen_href_link(FILENAME_CUSTOMERS, '', 'NONSSL') . '">' . zen_image_button('button_reset.gif', IMAGE_RESET) . '</a>&nbsp;&nbsp;';
  925.     }
  926.     echo HEADING_TITLE_SEARCH_DETAIL . ' ' . zen_draw_input_field('search') . zen_hide_session_id();
  927.     if (isset($_GET['search']) && zen_not_null($_GET['search'])) {
  928.       $keywords = zen_db_prepare_input($_GET['search']);
  929.       echo '<br/ >' . TEXT_INFO_SEARCH_DETAIL_FILTER . zen_output_string_protected($keywords);
  930.     }
  931. ?>
  932.             </td>
  933.           </form></tr>
  934.         </table></td>
  935.       </tr>
  936.       <tr>
  937.         <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
  938.           <tr>
  939. <?php
  940. // Sort Listing
  941.           switch ($_GET['list_order']) {
  942.               case "id-asc":
  943.               $disp_order = "ci.customers_info_date_account_created";
  944.               break;
  945.               case "firstname":
  946.               $disp_order = "c.customers_firstname";
  947.               break;
  948.               case "firstname-desc":
  949.               $disp_order = "c.customers_firstname DESC";
  950.               break;
  951.               case "group-asc":
  952.               $disp_order = "c.customers_group_pricing";
  953.               break;
  954.               case "group-desc":
  955.               $disp_order = "c.customers_group_pricing DESC";
  956.               break;
  957.               case "lastname":
  958.               $disp_order = "c.customers_lastname, c.customers_firstname";
  959.               break;
  960.               case "lastname-desc":
  961.               $disp_order = "c.customers_lastname DESC, c.customers_firstname";
  962.               break;
  963.               case "company":
  964.               $disp_order = "a.entry_company";
  965.               break;
  966.               case "company-desc":
  967.               $disp_order = "a.entry_company DESC";
  968.               break;
  969.               case "login-asc":
  970.               $disp_order = "ci.customers_info_date_of_last_logon";
  971.               break;
  972.               case "login-desc":
  973.               $disp_order = "ci.customers_info_date_of_last_logon DESC";
  974.               break;
  975.               case "approval-asc":
  976.               $disp_order = "c.customers_authorization";
  977.               break;
  978.               case "approval-desc":
  979.               $disp_order = "c.customers_authorization DESC";
  980.               break;
  981.               case "gv_balance-asc":
  982.               $disp_order = "cgc.amount, c.customers_lastname, c.customers_firstname";
  983.               break;
  984.               case "gv_balance-desc":
  985.               $disp_order = "cgc.amount DESC, c.customers_lastname, c.customers_firstname";
  986.               break;
  987.               default:
  988.               $disp_order = "ci.customers_info_date_account_created DESC";
  989.           }
  990. ?>
  991.              <td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
  992.               <tr class="dataTableHeadingRow">
  993.                 <td class="dataTableHeadingContent" align="center" valign="top">
  994.                   <?php echo TABLE_HEADING_ID; ?>
  995.                 </td>
  996.                 <td class="dataTableHeadingContent" align="left" valign="top">
  997.                   <?php echo (($_GET['list_order']=='lastname' or $_GET['list_order']=='lastname-desc') ? '<span class="SortOrderHeader">' . TABLE_HEADING_LASTNAME . '</span>' : TABLE_HEADING_LASTNAME); ?><br>
  998.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=lastname', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='lastname' ? '<span class="SortOrderHeader">Asc</span>' : '<span class="SortOrderHeaderLink">Asc</b>'); ?></a>&nbsp;
  999.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=lastname-desc', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='lastname-desc' ? '<span class="SortOrderHeader">Desc</span>' : '<span class="SortOrderHeaderLink">Desc</b>'); ?></a>
  1000.                 </td>
  1001.                 <td class="dataTableHeadingContent" align="left" valign="top">
  1002.                   <?php echo (($_GET['list_order']=='firstname' or $_GET['list_order']=='firstname-desc') ? '<span class="SortOrderHeader">' . TABLE_HEADING_FIRSTNAME . '</span>' : TABLE_HEADING_FIRSTNAME); ?><br>
  1003.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=firstname', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='firstname' ? '<span class="SortOrderHeader">Asc</span>' : '<span class="SortOrderHeaderLink">Asc</b>'); ?></a>&nbsp;
  1004.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=firstname-desc', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='firstname-desc' ? '<span class="SortOrderHeader">Desc</span>' : '<span class="SortOrderHeaderLink">Desc</span>'); ?></a>
  1005.                 </td>
  1006.                 <td class="dataTableHeadingContent" align="left" valign="top">
  1007.                   <?php echo (($_GET['list_order']=='company' or $_GET['list_order']=='company-desc') ? '<span class="SortOrderHeader">' . TABLE_HEADING_COMPANY . '</span>' : TABLE_HEADING_COMPANY); ?><br>
  1008.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=company', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='company' ? '<span class="SortOrderHeader">Asc</span>' : '<span class="SortOrderHeaderLink">Asc</b>'); ?></a>&nbsp;
  1009.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=company-desc', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='company-desc' ? '<span class="SortOrderHeader">Desc</span>' : '<span class="SortOrderHeaderLink">Desc</b>'); ?></a>
  1010.                 </td>
  1011.                 <td class="dataTableHeadingContent" align="left" valign="top">
  1012.                   <?php echo (($_GET['list_order']=='id-asc' or $_GET['list_order']=='id-desc') ? '<span class="SortOrderHeader">' . TABLE_HEADING_ACCOUNT_CREATED . '</span>' : TABLE_HEADING_ACCOUNT_CREATED); ?><br>
  1013.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=id-asc', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='id-asc' ? '<span class="SortOrderHeader">Asc</span>' : '<span class="SortOrderHeaderLink">Asc</b>'); ?></a>&nbsp;
  1014.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=id-desc', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='id-desc' ? '<span class="SortOrderHeader">Desc</span>' : '<span class="SortOrderHeaderLink">Desc</b>'); ?></a>
  1015.                 </td>
  1016.  
  1017.                 <td class="dataTableHeadingContent" align="left" valign="top">
  1018.                   <?php echo (($_GET['list_order']=='login-asc' or $_GET['list_order']=='login-desc') ? '<span class="SortOrderHeader">' . TABLE_HEADING_LOGIN . '</span>' : TABLE_HEADING_LOGIN); ?><br>
  1019.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=login-asc', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='login-asc' ? '<span class="SortOrderHeader">Asc</span>' : '<span class="SortOrderHeaderLink">Asc</b>'); ?></a>&nbsp;
  1020.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=login-desc', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='login-desc' ? '<span class="SortOrderHeader">Desc</span>' : '<span class="SortOrderHeaderLink">Desc</b>'); ?></a>
  1021.                 </td>
  1022.  
  1023.                 <td class="dataTableHeadingContent" align="left" valign="top">
  1024.                   <?php echo (($_GET['list_order']=='group-asc' or $_GET['list_order']=='group-desc') ? '<span class="SortOrderHeader">' . TABLE_HEADING_PRICING_GROUP . '</span>' : TABLE_HEADING_PRICING_GROUP); ?><br>
  1025.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=group-asc', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='group-asc' ? '<span class="SortOrderHeader">Asc</span>' : '<span class="SortOrderHeaderLink">Asc</b>'); ?></a>&nbsp;
  1026.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=group-desc', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='group-desc' ? '<span class="SortOrderHeader">Desc</span>' : '<span class="SortOrderHeaderLink">Desc</b>'); ?></a>
  1027.                 </td>
  1028.  
  1029. <?php if (MODULE_ORDER_TOTAL_GV_STATUS == 'true') { ?>
  1030.                 <td class="dataTableHeadingContent" align="left" valign="top" width="75">
  1031.                   <?php echo (($_GET['list_order']=='gv_balance-asc' or $_GET['list_order']=='gv_balance-desc') ? '<span class="SortOrderHeader">' . TABLE_HEADING_GV_AMOUNT . '</span>' : TABLE_HEADING_GV_AMOUNT); ?><br>
  1032.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=gv_balance-asc', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='gv_balance-asc' ? '<span class="SortOrderHeader">Asc</span>' : '<span class="SortOrderHeaderLink">Asc</b>'); ?></a>&nbsp;
  1033.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=gv_balance-desc', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='gv_balance-desc' ? '<span class="SortOrderHeader">Desc</span>' : '<span class="SortOrderHeaderLink">Desc</b>'); ?></a>
  1034.                 </td>
  1035. <?php } ?>
  1036.  
  1037.                 <td class="dataTableHeadingContent" align="center" valign="top">
  1038.                   <?php echo (($_GET['list_order']=='approval-asc' or $_GET['list_order']=='approval-desc') ? '<span class="SortOrderHeader">' . TABLE_HEADING_AUTHORIZATION_APPROVAL . '</span>' : TABLE_HEADING_AUTHORIZATION_APPROVAL); ?><br>
  1039.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=approval-asc', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='approval-asc' ? '<span class="SortOrderHeader">Asc</span>' : '<span class="SortOrderHeaderLink">Asc</b>'); ?></a>&nbsp;
  1040.                   <a href="<?php echo zen_href_link(basename($PHP_SELF) . '?list_order=approval-desc', '', 'NONSSL'); ?>"><?php echo ($_GET['list_order']=='approval-desc' ? '<span class="SortOrderHeader">Desc</span>' : '<span class="SortOrderHeaderLink">Desc</b>'); ?></a>
  1041.                 </td>
  1042.  
  1043.                 <td class="dataTableHeadingContent" align="right" valign="top"><?php echo TABLE_HEADING_ACTION; ?>&nbsp;</td>
  1044.               </tr>
  1045. <?php
  1046.     $search = '';
  1047.     if (isset($_GET['search']) && zen_not_null($_GET['search'])) {
  1048.       $keywords = zen_db_input(zen_db_prepare_input($_GET['search']));
  1049.       $search = "where c.customers_lastname like '%" . $keywords . "%' or c.customers_firstname like '%" . $keywords . "%' or c.customers_email_address like '%" . $keywords . "%' or c.customers_telephone rlike ':keywords:' or a.entry_company rlike ':keywords:' or a.entry_street_address rlike ':keywords:' or a.entry_city rlike ':keywords:' or a.entry_postcode rlike ':keywords:'";
  1050.       $search = $db->bindVars($search, ':keywords:', $keywords, 'regexp');
  1051.     }
  1052.     $new_fields=', c.customers_telephone, a.entry_company, a.entry_street_address, a.entry_city, a.entry_postcode, c.customers_authorization, c.customers_referral';
  1053.     $customers_query_raw = "select c.customers_id, c.customers_lastname, c.customers_firstname, c.customers_email_address, c.customers_group_pricing, a.entry_country_id, a.entry_company, ci.customers_info_date_of_last_logon, ci.customers_info_date_account_created " . $new_fields . ",
  1054.    cgc.amount
  1055.    from " . TABLE_CUSTOMERS . " c
  1056.    left join " . TABLE_CUSTOMERS_INFO . " ci on c.customers_id= ci.customers_info_id
  1057.    left join " . TABLE_ADDRESS_BOOK . " a on c.customers_id = a.customers_id and c.customers_default_address_id = a.address_book_id " . "
  1058.    left join " . TABLE_COUPON_GV_CUSTOMER . " cgc on c.customers_id = cgc.customer_id " .
  1059.     $search . " order by $disp_order";
  1060.  
  1061. // Split Page
  1062. // reset page when page is unknown
  1063. if (($_GET['page'] == '' or $_GET['page'] == '1') and $_GET['cID'] != '') {
  1064.   $check_page = $db->Execute($customers_query_raw);
  1065.   $check_count=1;
  1066.   if ($check_page->RecordCount() > MAX_DISPLAY_SEARCH_RESULTS_CUSTOMER) {
  1067.     while (!$check_page->EOF) {
  1068.       if ($check_page->fields['customers_id'] == $_GET['cID']) {
  1069.         break;
  1070.       }
  1071.       $check_count++;
  1072.       $check_page->MoveNext();
  1073.     }
  1074.     $_GET['page'] = round((($check_count/MAX_DISPLAY_SEARCH_RESULTS_CUSTOMER)+(fmod_round($check_count,MAX_DISPLAY_SEARCH_RESULTS_CUSTOMER) !=0 ? .5 : 0)),0);
  1075. //    zen_redirect(zen_href_link(FILENAME_CUSTOMERS, 'cID=' . $_GET['cID'] . (isset($_GET['page']) ? '&page=' . $_GET['page'] : ''), 'NONSSL'));
  1076.   } else {
  1077.     $_GET['page'] = 1;
  1078.   }
  1079. }
  1080.  
  1081.     $customers_split = new splitPageResults($_GET['page'], MAX_DISPLAY_SEARCH_RESULTS_CUSTOMER, $customers_query_raw, $customers_query_numrows);
  1082.     $customers = $db->Execute($customers_query_raw);
  1083.     while (!$customers->EOF) {
  1084.       $sql = "select customers_info_date_account_created as date_account_created,
  1085.                                   customers_info_date_account_last_modified as date_account_last_modified,
  1086.                                   customers_info_date_of_last_logon as date_last_logon,
  1087.                                   customers_info_number_of_logons as number_of_logons
  1088.                            from " . TABLE_CUSTOMERS_INFO . "
  1089.                            where customers_info_id = '" . $customers->fields['customers_id'] . "'";
  1090.       $info = $db->Execute($sql);
  1091.  
  1092.       // if no record found, create one to keep database in sync
  1093.         if ($info->RecordCount() == 0) {
  1094.           $insert_sql = "insert into " . TABLE_CUSTOMERS_INFO . " (customers_info_id)
  1095.                         values ('" . (int)$customers->fields['customers_id'] . "')";
  1096.         $db->Execute($insert_sql);
  1097.         $info = $db->Execute($sql);
  1098.       }
  1099.  
  1100.       if ((!isset($_GET['cID']) || (isset($_GET['cID']) && ($_GET['cID'] == $customers->fields['customers_id']))) && !isset($cInfo)) {
  1101.         $country = $db->Execute("select countries_name
  1102.                                 from " . TABLE_COUNTRIES . "
  1103.                                 where countries_id = '" . (int)$customers->fields['entry_country_id'] . "'");
  1104.  
  1105.         $reviews = $db->Execute("select count(*) as number_of_reviews
  1106.                                 from " . TABLE_REVIEWS . " where customers_id = '" . (int)$customers->fields['customers_id'] . "'");
  1107.  
  1108.         $customer_info = array_merge($country->fields, $info->fields, $reviews->fields);
  1109.  
  1110.         $cInfo_array = array_merge($customers->fields, $customer_info);
  1111.         $cInfo = new objectInfo($cInfo_array);
  1112.       }
  1113.  
  1114.         $group_query = $db->Execute("select group_name, group_percentage from " . TABLE_GROUP_PRICING . " where
  1115.                                     group_id = '" . $customers->fields['customers_group_pricing'] . "'");
  1116.  
  1117.         if ($group_query->RecordCount() < 1) {
  1118.           $group_name_entry = TEXT_NONE;
  1119.         } else {
  1120.           $group_name_entry = $group_query->fields['group_name'];
  1121.         }
  1122.  
  1123.       if (isset($cInfo) && is_object($cInfo) && ($customers->fields['customers_id'] == $cInfo->customers_id)) {
  1124.         echo '          <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . zen_href_link(FILENAME_CUSTOMERS, zen_get_all_get_params(array('cID', 'action')) . 'cID=' . $cInfo->customers_id . '&action=edit', 'NONSSL') . '\'">' . "\n";
  1125.       } else {
  1126.         echo '          <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . zen_href_link(FILENAME_CUSTOMERS, zen_get_all_get_params(array('cID')) . 'cID=' . $customers->fields['customers_id'], 'NONSSL') . '\'">' . "\n";
  1127.       }
  1128.  
  1129.       $zc_address_book_count_list = zen_get_customers_address_book($customers->fields['customers_id']);
  1130.       $zc_address_book_count = $zc_address_book_count_list->RecordCount();
  1131. ?>
  1132.                 <td class="dataTableContent" align="right"><?php echo $customers->fields['customers_id'] . ($zc_address_book_count == 1 ? TEXT_INFO_ADDRESS_BOOK_COUNT . $zc_address_book_count : '<a href="' . zen_href_link(FILENAME_CUSTOMERS, 'action=list_addresses' . '&cID=' . $customers->fields['customers_id'] . ($_GET['page'] > 0 ? '&page=' . $_GET['page'] : ''), 'NONSSL') . '">' . TEXT_INFO_ADDRESS_BOOK_COUNT . $zc_address_book_count . '</a>'); ?></td>
  1133.                 <td class="dataTableContent"><?php echo $customers->fields['customers_lastname']; ?></td>
  1134.                 <td class="dataTableContent"><?php echo $customers->fields['customers_firstname']; ?></td>
  1135.                 <td class="dataTableContent"><?php echo $customers->fields['entry_company']; ?></td>
  1136.                 <td class="dataTableContent"><?php echo zen_date_short($info->fields['date_account_created']); ?></td>
  1137.                 <td class="dataTableContent"><?php echo zen_date_short($customers->fields['customers_info_date_of_last_logon']); ?></td>
  1138.                 <td class="dataTableContent"><?php echo $group_name_entry; ?></td>
  1139. <?php if (MODULE_ORDER_TOTAL_GV_STATUS == 'true') { ?>
  1140.                 <td class="dataTableContent" align="right"><?php echo $currencies->format($customers->fields['amount']); ?></td>
  1141. <?php } ?>
  1142.                 <td class="dataTableContent" align="center">
  1143.                 <?php if ($customers->fields['customers_authorization'] == 4) { ?>
  1144.                 <?php echo zen_image(DIR_WS_IMAGES . 'icon_red_off.gif', IMAGE_ICON_STATUS_OFF); ?>
  1145.                 <?php } else { ?>
  1146.                   <?php if ($customers->fields['customers_authorization'] == 0) {
  1147.                     echo zen_draw_form('setstatus', FILENAME_CUSTOMERS, 'action=status&cID=' . $customers->fields['customers_id'] . (isset($_GET['page']) ? '&page=' . $_GET['page'] : '') . (isset($_GET['search']) ? '&search=' . $_GET['search'] : ''));?>
  1148.                     <input type="image" src="<?php echo DIR_WS_IMAGES ?>icon_green_on.gif" title="<?php echo IMAGE_ICON_STATUS_ON; ?>" />
  1149.                     <input type="hidden" name="current" value="<?php echo $customers->fields['customers_authorization']; ?>" />
  1150.                     </form>
  1151.                   <?php } else {
  1152.                     echo zen_draw_form('setstatus', FILENAME_CUSTOMERS, 'action=status&cID=' . $customers->fields['customers_id'] . (isset($_GET['page']) ? '&page=' . $_GET['page'] : '') . (isset($_GET['search']) ? '&search=' . $_GET['search'] : ''));?>
  1153.                     <input type="image" src="<?php echo DIR_WS_IMAGES ?>icon_red_on.gif" title="<?php echo IMAGE_ICON_STATUS_OFF; ?>" />
  1154.                     <input type="hidden" name="current" value="<?php echo $customers->fields['customers_authorization']; ?>" />
  1155.                     </form>
  1156.                   <?php } ?>
  1157.                 <?php } ?>
  1158.                 </td>
  1159.                 <td class="dataTableContent" align="right"><?php if (isset($cInfo) && is_object($cInfo) && ($customers->fields['customers_id'] == $cInfo->customers_id)) { echo zen_image(DIR_WS_IMAGES . 'icon_arrow_right.gif', ''); } else { echo '<a href="' . zen_href_link(FILENAME_CUSTOMERS, zen_get_all_get_params(array('cID')) . 'cID=' . $customers->fields['customers_id'] . ($_GET['page'] > 0 ? '&page=' . $_GET['page'] : ''), 'NONSSL') . '">' . zen_image(DIR_WS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?>&nbsp;</td>
  1160.               </tr>
  1161. <?php
  1162.       $customers->MoveNext();
  1163.     }
  1164. ?>
  1165.               <tr>
  1166.                 <td colspan="5"><table border="0" width="100%" cellspacing="0" cellpadding="2">
  1167.                   <tr>
  1168.                     <td class="smallText" valign="top"><?php echo $customers_split->display_count($customers_query_numrows, MAX_DISPLAY_SEARCH_RESULTS_CUSTOMER, $_GET['page'], TEXT_DISPLAY_NUMBER_OF_CUSTOMERS); ?></td>
  1169.                     <td class="smallText" align="right"><?php echo $customers_split->display_links($customers_query_numrows, MAX_DISPLAY_SEARCH_RESULTS_CUSTOMER, MAX_DISPLAY_PAGE_LINKS, $_GET['page'], zen_get_all_get_params(array('page', 'info', 'x', 'y', 'cID'))); ?></td>
  1170.                   </tr>
  1171. <?php
  1172.     if (isset($_GET['search']) && zen_not_null($_GET['search'])) {
  1173. ?>
  1174.                   <tr>
  1175.                     <td align="right" colspan="2"><?php echo '<a href="' . zen_href_link(FILENAME_CUSTOMERS, '', 'NONSSL') . '">' . zen_image_button('button_reset.gif', IMAGE_RESET) . '</a>'; ?></td>
  1176.                   </tr>
  1177. <?php
  1178.     }
  1179. ?>
  1180.                 </table></td>
  1181.               </tr>
  1182.             </table></td>
  1183. <?php
  1184.   $heading = array();
  1185.   $contents = array();
  1186.  
  1187.   switch ($action) {
  1188.     case 'confirm':
  1189.       $heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_DELETE_CUSTOMER . '</b>');
  1190.  
  1191.       $contents = array('form' => zen_draw_form('customers', FILENAME_CUSTOMERS, zen_get_all_get_params(array('cID', 'action', 'search')) . 'action=deleteconfirm', 'post', '', true) . zen_draw_hidden_field('cID', $cInfo->customers_id));
  1192.       $contents[] = array('text' => TEXT_DELETE_INTRO . '<br><br><b>' . $cInfo->customers_firstname . ' ' . $cInfo->customers_lastname . '</b>');
  1193.       if (isset($cInfo->number_of_reviews) && ($cInfo->number_of_reviews) > 0) $contents[] = array('text' => '<br />' . zen_draw_checkbox_field('delete_reviews', 'on', true) . ' ' . sprintf(TEXT_DELETE_REVIEWS, $cInfo->number_of_reviews));
  1194.       $contents[] = array('align' => 'center', 'text' => '<br />' . zen_image_submit('button_delete.gif', IMAGE_DELETE) . ' <a href="' . zen_href_link(FILENAME_CUSTOMERS, zen_get_all_get_params(array('cID', 'action')) . 'cID=' . $cInfo->customers_id, 'NONSSL') . '">' . zen_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
  1195.       break;
  1196.     default:
  1197.       if (isset($_GET['search'])) $_GET['search'] = zen_output_string_protected($_GET['search']);
  1198.       if (isset($cInfo) && is_object($cInfo)) {
  1199.         $customers_orders = $db->Execute("select o.orders_id, o.date_purchased, o.order_total, o.currency, o.currency_value,
  1200.                                          cgc.amount
  1201.                                          from " . TABLE_ORDERS . " o
  1202.                                          left join " . TABLE_COUPON_GV_CUSTOMER . " cgc on o.customers_id = cgc.customer_id
  1203.                                          where customers_id='" . $cInfo->customers_id . "' order by date_purchased desc");
  1204.  
  1205.         $heading[] = array('text' => '<b>' . TABLE_HEADING_ID . $cInfo->customers_id . ' ' . $cInfo->customers_firstname . ' ' . $cInfo->customers_lastname . '</b>');
  1206.  
  1207.         $contents[] = array('align' => 'center', 'text' => '<a href="' . zen_href_link(FILENAME_CUSTOMERS, zen_get_all_get_params(array('cID', 'action', 'search')) . 'cID=' . $cInfo->customers_id . '&action=edit', 'NONSSL') . '">' . zen_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . zen_href_link(FILENAME_CUSTOMERS, zen_get_all_get_params(array('cID', 'action', 'search')) . 'cID=' . $cInfo->customers_id . '&action=confirm', 'NONSSL') . '">' . zen_image_button('button_delete.gif', IMAGE_DELETE) . '</a><br />' . ($customers_orders->RecordCount() != 0 ? '<a href="' . zen_href_link(FILENAME_ORDERS, 'cID=' . $cInfo->customers_id, 'NONSSL') . '">' . zen_image_button('button_orders.gif', IMAGE_ORDERS) . '</a>' : '') . ' <a href="' . zen_href_link(FILENAME_MAIL, 'origin=customers.php&mode=NONSSL&selected_box=tools&customer=' . $cInfo->customers_email_address.'&cID=' . $cInfo->customers_id, 'NONSSL') . '">' . zen_image_button('button_email.gif', IMAGE_EMAIL) . '</a>');
  1208.         $contents[] = array('text' => '<br />' . TEXT_DATE_ACCOUNT_CREATED . ' ' . zen_date_short($cInfo->date_account_created));
  1209.         $contents[] = array('text' => '<br />' . TEXT_DATE_ACCOUNT_LAST_MODIFIED . ' ' . zen_date_short($cInfo->date_account_last_modified));
  1210.         $contents[] = array('text' => '<br />' . TEXT_INFO_DATE_LAST_LOGON . ' '  . zen_date_short($cInfo->date_last_logon));
  1211.         $contents[] = array('text' => '<br />' . TEXT_INFO_NUMBER_OF_LOGONS . ' ' . $cInfo->number_of_logons);
  1212.  
  1213.         $customer_gv_balance = zen_user_has_gv_balance($cInfo->customers_id);
  1214.         $contents[] = array('text' => '<br />' . TEXT_INFO_GV_AMOUNT . ' ' . $currencies->format($customer_gv_balance));
  1215.  
  1216.         $contents[] = array('text' => '<br />' . TEXT_INFO_NUMBER_OF_ORDERS . ' ' . $customers_orders->RecordCount());
  1217.         if ($customers_orders->RecordCount() != 0) {
  1218.           $contents[] = array('text' => TEXT_INFO_LAST_ORDER . ' ' . zen_date_short($customers_orders->fields['date_purchased']) . '<br />' . TEXT_INFO_ORDERS_TOTAL . ' ' . $currencies->format($customers_orders->fields['order_total'], true, $customers_orders->fields['currency'], $customers_orders->fields['currency_value']));
  1219.         }
  1220.         $contents[] = array('text' => '<br />' . TEXT_INFO_COUNTRY . ' ' . $cInfo->countries_name);
  1221.         $contents[] = array('text' => '<br />' . TEXT_INFO_NUMBER_OF_REVIEWS . ' ' . $cInfo->number_of_reviews);
  1222.         $contents[] = array('text' => '<br />' . CUSTOMERS_REFERRAL . ' ' . $cInfo->customers_referral);
  1223.       }
  1224.       break;
  1225.   }
  1226.  
  1227.   if ( (zen_not_null($heading)) && (zen_not_null($contents)) ) {
  1228.     echo '            <td width="25%" valign="top">' . "\n";
  1229.  
  1230.     $box = new box;
  1231.     echo $box->infoBox($heading, $contents);
  1232.  
  1233.     echo '            </td>' . "\n";
  1234.   }
  1235. ?>
  1236.           </tr>
  1237.         </table></td>
  1238.       </tr>
  1239. <?php
  1240.   }
  1241. ?>
  1242.     </table></td>
  1243. <!-- body_text_eof //-->
  1244.   </tr>
  1245. </table>
  1246. <!-- body_eof //-->
  1247.  
  1248. <!-- footer //-->
  1249. <?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
  1250. <!-- footer_eof //-->
  1251. <br>
  1252. </body>
  1253. </html>
  1254. <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>
  1255.