Extension 'ext-coupon' moved to branch, SQLs improved:
[mailer.git] / inc / modules / guest / what-sponsor_reg.php
index 312627aac8639292e259eb6aea75edee6c49f161..bc5bbdfcdea337564f92a30bd4a25b4f0a4e18e5 100644 (file)
  * $Date::                                                            $ *
  * $Tag:: 0.2.1-FINAL                                                 $ *
  * $Author::                                                          $ *
- * Needs to be in all Files and every File needs "svn propset           *
- * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009, 2010 by Mailer Developer Team                    *
+ * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
  * For more information visit: http://www.mxchange.org                  *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 // Some security stuff...
 if (!defined('__SECURITY')) {
        die();
-}
+} // END - if
 
 // Add description as navigation point
-addMenuDescription('guest', __FILE__);
+addYouAreHereLink('guest', __FILE__);
 
 if ((!isExtensionActive('sponsor'))) {
-       loadTemplate('admin_settings_saved', false, generateExtensionInactiveNotInstalledMessage('sponsor'));
+       displayMessage(generateExtensionInactiveNotInstalledMessage('sponsor'));
        return;
 } // END - if
 
 // Create array for form errors (= missing data)
-$FORM_ERRORS = array();
+$formErrors = array();
 
 if (isFormSent()) {
        //
@@ -60,156 +58,160 @@ if (isFormSent()) {
        // 1. Salutation / Surname / family name
        if (!isPostRequestParameterSet('gender')) {
                // Surname is empty
-               $FORM_ERRORS[] = getMessage('SPONSOR_NO_GENDER_SELECTED');
+               $formErrors[] = '{--SPONSOR_NO_GENDER_SELECTED--}';
        } // END - if
 
        if (!isPostRequestParameterSet('surname')) {
                // Surname is empty
-               $FORM_ERRORS[] = getMessage('SPONSOR_SURNAME_IS_EMPTY');
+               $formErrors[] = '{--SPONSOR_SURNAME_IS_EMPTY--}';
        } // END - if
 
        if (!isPostRequestParameterSet('family')) {
                // Surname is empty
-               $FORM_ERRORS[] = getMessage('SPONSOR_FAMILY_IS_EMPTY');
+               $formErrors[] = '{--SPONSOR_FAMILY_IS_EMPTY--}';
        } // END - if
 
        // 2. Company name
-       // 012                   3         32    23                  4           43    3                  4          4321    12                  3         32    2                   3           3210
+       // 012                          3         32    23                         4           43    3                         4          4321    12                         3         32    2                          3           3210
        if (((!isPostRequestParameterSet('company')) && ((isPostRequestParameterSet('tax_ident')) || (isPostRequestParameterSet('position')))) || ((isPostRequestParameterSet('company')) && (!isPostRequestParameterSet('tax_ident')))) {
                if (!isPostRequestParameterSet('company')) {
                        // Company name is empty
-                       $FORM_ERRORS[] = getMessage('SPONSOR_COMPANY_IS_EMPTY');
+                       $formErrors[] = '{--SPONSOR_COMPANY_IS_EMPTY--}';
                } elseif (!isPostRequestParameterSet('tax_ident')) {
                        // Tax ident number name is empty
-                       $FORM_ERRORS[] = getMessage('SPONSOR_TAX_IDENT_IS_EMPTY');
+                       $formErrors[] = '{--SPONSOR_TAX_IDENT_IS_EMPTY--}';
                }
 
                if (!isPostRequestParameterSet('position')) {
                        // Not fatal but not nice: position in company is empty
-                       $FORM_ERRORS[] = getMessage('SPONSOR_POSITION_IS_EMPTY');
+                       $formErrors[] = '{--SPONSOR_POSITION_IS_EMPTY--}';
                } // END - if
        } // END - if
 
        // 3. Street and number
        if (!isPostRequestParameterSet('street_nr1')) {
                // Street name and house number are empty
-               $FORM_ERRORS[] = getMessage('SPONSOR_STREET_NR1_IS_EMPTY');
+               $formErrors[] = '{--SPONSOR_STREET_NR1_IS_EMPTY--}';
        } elseif ((isPostRequestParameterSet('street_nr2')) && (!isPostRequestParameterSet('street_nr1'))) {
                // 1st line for street is empty, but 2nd line not
-               $FORM_ERRORS[] = getMessage('SPONSOR_STREET_NR1_IS_EMPTY_2_NOT');
+               $formErrors[] = '{--SPONSOR_STREET_NR1_IS_EMPTY_2_NOT--}';
        }
 
        // 4. Country code
        if (!isPostRequestParameterSet('country')) {
                // Country code is empty
-               $FORM_ERRORS[] = getMessage('SPONSOR_COUNTRY_IS_EMPTY');
+               $formErrors[] = '{--kSPONSOR_COUNTRY_IS_EMPTY--}';
        } elseif (strlen(postRequestParameter('country')) != 2) {
                // Country code is invalid
-               $FORM_ERRORS[] = getMessage('SPONSOR_COUNTRY_IS_INVALID');
+               $formErrors[] = '{--SPONSOR_COUNTRY_IS_INVALID--}';
        }
 
        // 3. ZIP code
        if (!isPostRequestParameterSet('zip')) {
                // ZIP code is empty
-               $FORM_ERRORS[] = getMessage('SPONSOR_ZIP_IS_EMPTY');
+               $formErrors[] = '{--SPONSOR_ZIP_IS_EMPTY--}';
        } elseif (bigintval(postRequestParameter('zip')) != postRequestParameter('zip')) {
                // ZIP is invalid
-               $FORM_ERRORS[] = getMessage('SPONSOR_ZIP_IS_INVALID');
+               $formErrors[] = '{--SPONSOR_ZIP_IS_INVALID--}';
                setPostRequestParameter('zip', '');
        }
 
        // 4. City
        if (!isPostRequestParameterSet('city')) {
                // City is empty
-               $FORM_ERRORS[] = getMessage('SPONSOR_CITY_IS_EMPTY');
+               $formErrors[] = '{--SPONSOR_CITY_IS_EMPTY--}';
        } // END - if
 
        // 5. Phone number
        if (!isPostRequestParameterSet('phone')) {
                // City is empty
-               $FORM_ERRORS[] = getMessage('SPONSOR_PHONE_IS_EMPTY');
+               $formErrors[] = '{--SPONSOR_PHONE_IS_EMPTY--}';
        } // END - if
 
        // 6. Homepage URL
        if (!isPostRequestParameterSet('url')) {
                // Homepage URL is empty
-               $FORM_ERRORS[] = getMessage('SPONSOR_URL_IS_EMPTY');
+               $formErrors[] = '{--SPONSOR_URL_IS_EMPTY--}';
        } elseif (!isUrlValid(postRequestParameter('url'))) {
                // Homepage URL is invalid
-               $FORM_ERRORS[] = getMessage('SPONSOR_URL_IS_INVALID');
+               $formErrors[] = '{--SPONSOR_URL_IS_INVALID--}';
                setPostRequestParameter('url', '');
        }
 
        // 7. Light validation of email address
        if ((!isPostRequestParameterSet('email')) || (postRequestParameter('email') == '@')) {
                // Email is invalid/empty
-               $FORM_ERRORS[] = getMessage('SPONSOR_EMAIL_IS_INVALID');
+               $formErrors[] = '{--SPONSOR_EMAIL_IS_INVALID--}';
        } elseif (isSponsorRegisteredWithEmail(postRequestParameter('email'))) {
                // Email already found in database!
-               $FORM_ERRORS[] = getMessage('SPONSOR_EMAIL_IS_ALREADY_REGISTERED');
+               $formErrors[] = '{--SPONSOR_EMAIL_IS_ALREADY_REGISTERED--}';
                setPostRequestParameter('email', '');
        }
 
        // 8. Pay type selected?
        if (!isPostRequestParameterSet('pay_type')) {
                // Not pay type selected
-               $FORM_ERRORS[] = getMessage('SPONSOR_NO_PAYTYPE_SELECTED');
+               $formErrors[] = '{--SPONSOR_NO_PAYTYPE_SELECTED--}';
        } // END - if
 
        // 9. Interval of mails
        if (!isPostRequestParameterSet('warning_interval')) {
                // No warning interval selected
-               $FORM_ERRORS[] = getMessage('SPONSOR_NO_WARNING_INTERVAL_SELECTED');
+               $formErrors[] = '{--SPONSOR_NO_WARNING_INTERVAL_SELECTED--}';
        } // END - if
 
        // 10. Mail notifications disabled/enabled
        if (!isPostRequestParameterSet('receive_warnings')) {
                // Option not selected!
-               $FORM_ERRORS[] = getMessage('SPONSOR_NO_RECEIVE_WARNINGS_SELECTED');
+               $formErrors[] = '{--SPONSOR_NO_RECEIVE_WARNINGS_SELECTED--}';
        } // END - if
 
        // Did he enter his password twice?
        if (((!isPostRequestParameterSet('pass1')) || (!isPostRequestParameterSet('pass2'))) || ((postRequestParameter('pass1') != postRequestParameter('pass2')) && (isPostRequestParameterSet('pass1')) && (isPostRequestParameterSet('pass2')))) {
                if ((postRequestParameter('pass1') != postRequestParameter('pass2')) && (isPostRequestParameterSet('pass1')) && (isPostRequestParameterSet('pass2'))) {
                        // Passwords missmatch
-                       $FORM_ERRORS[] = getMessage('SPONSOR_PASSWORDS_MISMATCH');
+                       $formErrors[] = '{--SPONSOR_PASSWORDS_MISMATCH--}';
                } else {
                        if (!isPostRequestParameterSet('pass1')) {
                                // Password 1 is empty
-                               $FORM_ERRORS[] = getMessage('SPONSOR_PASSWORD1_EMPTY');
+                               $formErrors[] = '{--SPONSOR_PASSWORD1_EMPTY--}';
                        }
 
                        if (!isPostRequestParameterSet('pass2')) {
                                // Password 2 is empty
-                               $FORM_ERRORS[] = getMessage('SPONSOR_PASSWORD2_EMPTY');
+                               $formErrors[] = '{--SPONSOR_PASSWORD2_EMPTY--}';
                        }
                }
-       } elseif (strlen(postRequestParameter('pass1')) < getConfig('pass_len')) {
+       } elseif (strlen(postRequestParameter('pass1')) < getPassLen()) {
                // Password is to short!
-               $FORM_ERRORS[] = getMessage('SPONSOR_PASSWORD_TOO_SHORT');
+               $formErrors[] = '{--SPONSOR_PASSWORD_TOO_SHORT--}';
        }
 
        // Check if he has accepted the terms&conditions
        if (!isPostRequestParameterSet('terms')) {
                // Homepage URL is empty
-               $FORM_ERRORS[] = getMessage('SPONSOR_TERMS_NOT_ACCEPTED');
+               $formErrors[] = '{--SPONSOR_TERMS_NOT_ACCEPTED--}';
        } // END - if
 
        // If there is something wrong/missing stop registration
-       if (count($FORM_ERRORS) > 0) unsetPostRequestParameter('ok');
-}
+       if (count($formErrors) > 0) unsetPostRequestParameter('ok');
+} // END - if
 
-if ((isFormSent()) && (count($FORM_ERRORS) == '0')) {
+if ((isFormSent()) && (count($formErrors) == 0)) {
        // Generate message array
        $messageArray = array(
-               'failed' => getMessage('SPONSOR_REGISTRATION_FAILED'),
-               'added'  => getMessage('SPONSOR_REGISTRATION_COMPLETED'),
+               'failed' => '{--SPONSOR_REGISTRATION_FAILED--}',
+               'added'  => '{--SPONSOR_REGISTRATION_COMPLETED--}',
        );
 
        // Calulate points
-       $result = SQL_QUERY_ESC("SELECT (`pay_rate` * `pay_min_count`) AS points, `pay_min_count` AS pay, `pay_currency` AS curr
-FROM `{?_MYSQL_PREFIX?}_sponsor_paytypes`
-WHERE `id`='%s' LIMIT 1",
+       $result = SQL_QUERY_ESC("SELECT
+       (`pay_rate` * `pay_min_count`) AS `points`, `pay_min_count`, `pay_currency`
+FROM
+       `{?_MYSQL_PREFIX?}_sponsor_paytypes`
+WHERE
+       `id`=%s
+LIMIT 1",
                array(postRequestParameter('pay_type')), __FILE__, __LINE__);
        list($points, $pay, $curr) = SQL_FETCHROW($result);
 
@@ -219,97 +221,45 @@ WHERE `id`='%s' LIMIT 1",
        // Add points to array
        postRequestParameter('points_amount', $points);
        postRequestParameter('points_used'  , '0.00000');
-       postRequestParameter('last_pay'     , $pay);
-       postRequestParameter('last_curr'    , $curr);
+       postRequestParameter('last_payment' , $pay);
+       postRequestParameter('last_currency', $curr);
 
        // Register sponsor but never ever update here!
-       $STATUS = handlSponsorRequest(postRequestArray(), true, $messageArray, true);
-
-       // Check the status of the registration process
-       switch ($STATUS) {
-               case 'added': // Sponsor successfully added with account status = UNCONFIRMED!
-                       // Check for his id number
-                       $result = SQL_QUERY_ESC("SELECT `id`, `hash` FROM `{?_MYSQL_PREFIX?}_sponsor_data` WHERE `email`='%s' LIMIT 1",
-                               array(postRequestParameter('email')), __FILE__, __LINE__);
-                       if (SQL_NUMROWS($result) == 1) {
-                               // id found so let's load it for the confirmation email
-                               list($id, $hash) = SQL_FETCHROW($result);
-
-                               // Prepare data for the email template
-                               $content['id']        = $id;
-                               $content['hash']      = $hash;
-                               $content['email']     = secureString(postRequestParameter('email'));
-                               $content['surname']   = secureString(postRequestParameter('surname'));
-                               $content['family']    = secureString(postRequestParameter('family'));
-                               $content['gender']    = translateGender(postRequestParameter('gender'));
-                               $content['timestamp'] = generateDateTime(time(), 0);
-                               $content['password']  = secureString(postRequestParameter('pass1'));
-
-                               // Generate email and send it to the new sponsor
-                               $message = loadEmailTemplate('sponsor_confirm', $hash);
-                               sendEmail(postRequestParameter('email'), getMessage('SPONSOR_PLEASE_CONFIRM_SUBJ'), $message);
-
-                               // Send mail to admin
-                               sendAdminNotification(getMessage('ADMIN_NEW_SPONSOR'), 'admin_sponsor_reg', $hash);
-
-                               // Output message: DONE
-                               $message = $messageArray['added'];
-                       } else {
-                               // Sponsor account not found???
-                               $message = getMaskedMessage('SPONSOR_EMAIL_404', postRequestParameter('email'));
-                       }
-
-                       // Free memory
-                       SQL_FREERESULT($result);
-                       break;
-
-               default:
-                       logDebugMessage(__FILE__, __LINE__, sprintf("Unknown status %s detected.", $STATUS));
-                       if (!isAdmin()) {
-                               // Message for testing admin
-                               $message = getMaskedMessage('ADMIN_SPONSOR_UNKNOWN_STATUS', $STATUS);
-                       } else {
-                               // Message for the guest
-                               $message = getMaskedMessage('SPONSOR_UNKNOWN_STATUS', $STATUS);
-                       }
-                       break;
-       }
+       $message = doProcessSponsorFormRequest($messageArray);
 
        // Display message
-       loadTemplate('admin_settings_saved', false, $message);
+       displayMessage($message);
 } else {
        // Check for payment types
-       $result = SQL_QUERY("SELECT `id`, `pay_name`, `pay_rate`, `pay_currency`, `pay_min_count`
-FROM `{?_MYSQL_PREFIX?}_sponsor_paytypes`
-ORDER BY `pay_name`", __FILE__, __LINE__);
-       if (SQL_NUMROWS($result) > 0) {
+       $result = SQL_QUERY('SELECT
+       `id`, `pay_name`, `pay_rate`, `pay_currency`, `pay_min_count`
+FROM
+       `{?_MYSQL_PREFIX?}_sponsor_paytypes`
+ORDER BY 
+       `pay_name` ASC', __FILE__, __LINE__);
+       if (!SQL_HASZERONUMS($result)) {
                // Load all types...
-               // @TODO Swap this HTML code to templates
-               $OUT = "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"300\" class=\"left right top\">\n";
-               $SW = 2;
+               $OUT = '';
                while ($content = SQL_FETCHARRAY($result)) {
                        // Prepare content for output
-                       $content['sw']  = $SW;
                        $content['res'] = translateComma($content['pay_rate'] * $content['pay_min_count']);
 
                        // Load row template and switch color
-                       $OUT .= loadTemplate('guest_sponsor_payment_row', false, $content);
-                       $SW = 3 - $SW;
-               }
-               $OUT .= "</table>\n";
+                       $OUT .= loadTemplate('guest_sponsor_payment_row', true, $content);
+               } // END - while
 
                // Remember the list in table
-               $content['payment_list'] = $OUT;
+               $content['payment_list'] = loadTemplate('guest_sponsor_payment', true, $OUT);
 
                // Init a lot array elements
-               foreach (array('company','position','tax_ident','gender_m','gender_f','gender_c','surname','family','street_nr1','street_nr2','country','zip','city','phone','fix','cell','email','url','rec_y','rec_n','form_errors','refid') as $entry) {
+               foreach (array('company','position','tax_ident','gender_m','gender_f','gender_c','surname','family','street_nr1','street_nr2','country','zip','city','phone','fax','cell','email','url','receive_warnings_y','receive_warnings_n','form_errors','refid') as $entry) {
                        $content[$entry]   = '';
                } // END - foreach
 
                // Check for invalid entries
-               if (count($FORM_ERRORS) > 0) {
+               if (count($formErrors) > 0) {
                        // Some found... :-(
-                       foreach (array('company','position','tax_ident','surname','family','street_nr1','street_nr2','country','zip','city','phone','fix','cell','email','url') as $entry) {
+                       foreach (array('company','position','tax_ident','surname','family','street_nr1','street_nr2','country','zip','city','phone','fax','cell','email','url') as $entry) {
                                $content[$entry]    = secureString(postRequestParameter($entry));
                        } // END - foreach
 
@@ -322,38 +272,41 @@ ORDER BY `pay_name`", __FILE__, __LINE__);
                        $content['gender_' . strtolower(postRequestParameter('gender'))] = ' selected="selected"';
 
                        // Init receive selection
-                       $content['rec_y'] = '';
-                       $content['rec_n'] = '';
+                       $content['receive_warnings_y'] = '';
+                       $content['receive_warnings_n'] = '';
 
                        // Check for receive_warnings
-                       $content['rec_' . strtolower(postRequestParameter('receive_warnings'))] = ' selected="selected"';
+                       $content['receive_warnings_' . strtolower(postRequestParameter('receive_warnings'))] = ' selected="selected"';
                        $OUT = '';
 
                        // Errors found?
-                       if (count($FORM_ERRORS) > 0) {
-                               $OUT = "<div align=\"center\">
-  <strong><div class=\"guest_failed\">".getMessage('SPONSOR_REGISTER_SOMETHING_MISSING').":</div></strong><br />
-</div>
-<ol>\n";
-                               foreach ($FORM_ERRORS as $error) {
-                                       $OUT .= "<li>".$error."</li>\n";
+                       if (count($formErrors) > 0) {
+                               $OUT = displayMessage('{--SPONSOR_REGISTER_SOMETHING_MISSING--}', true);
+                               $OUT .= '<ol>';
+                               foreach ($formErrors as $error) {
+                                       $OUT .= '<li>' . $error . '</li>';
                                } // END - foreach
 
-                               $OUT .= "</ol><br />\n";
+                               $OUT .= '</ol>';
                        } // END - if
 
                        $content['form_errors'] = $OUT;
-                       $content['refid']       = bigintval(postRequestParameter('refid'));
-               } // END - if
 
-               // Prepare referal id
-               $content['refid'] = determineReferalId();
+                       // @TODO Maybe a default referal id?
+                       $content['refid'] = 0;
+
+                       // Is the referal id valid?
+                       if ((isPostRequestParameterSet('refid')) && (isValidUserId(postRequestParameter('refid')))) {
+                               // Transfer referal id
+                               $content['refid'] = bigintval(postRequestParameter('refid'));
+                       } // END - if
+               } // END - if
 
                // Display registration form
                loadTemplate('guest_sponsor_reg', false, $content);
        } else {
                // Nothing added so far
-               loadTemplate('admin_settings_saved', false, getMessage('SPONSOR_PAYMENT_LIST_IS_EMPTY'));
+               displayMessage('{--SPONSOR_PAYMENT_LIST_IS_EMPTY--}');
        }
 
        // Free memory