Extension 'ext-coupon' moved to branch, SQLs improved:
[mailer.git] / inc / modules / guest / what-sponsor_reg.php
index ed92a13936e9c45d3fa64a3ef3553f3a85c48d6a..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,17 +58,17 @@ if (isFormSent()) {
        // 1. Salutation / Surname / family name
        if (!isPostRequestParameterSet('gender')) {
                // Surname is empty
-               $FORM_ERRORS[] = '{--SPONSOR_NO_GENDER_SELECTED--}';
+               $formErrors[] = '{--SPONSOR_NO_GENDER_SELECTED--}';
        } // END - if
 
        if (!isPostRequestParameterSet('surname')) {
                // Surname is empty
-               $FORM_ERRORS[] = '{--SPONSOR_SURNAME_IS_EMPTY--}';
+               $formErrors[] = '{--SPONSOR_SURNAME_IS_EMPTY--}';
        } // END - if
 
        if (!isPostRequestParameterSet('family')) {
                // Surname is empty
-               $FORM_ERRORS[] = '{--SPONSOR_FAMILY_IS_EMPTY--}';
+               $formErrors[] = '{--SPONSOR_FAMILY_IS_EMPTY--}';
        } // END - if
 
        // 2. Company name
@@ -78,128 +76,128 @@ if (isFormSent()) {
        if (((!isPostRequestParameterSet('company')) && ((isPostRequestParameterSet('tax_ident')) || (isPostRequestParameterSet('position')))) || ((isPostRequestParameterSet('company')) && (!isPostRequestParameterSet('tax_ident')))) {
                if (!isPostRequestParameterSet('company')) {
                        // Company name is empty
-                       $FORM_ERRORS[] = '{--SPONSOR_COMPANY_IS_EMPTY--}';
+                       $formErrors[] = '{--SPONSOR_COMPANY_IS_EMPTY--}';
                } elseif (!isPostRequestParameterSet('tax_ident')) {
                        // Tax ident number name is empty
-                       $FORM_ERRORS[] = '{--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[] = '{--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[] = '{--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[] = '{--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[] = '{--kSPONSOR_COUNTRY_IS_EMPTY--}';
+               $formErrors[] = '{--kSPONSOR_COUNTRY_IS_EMPTY--}';
        } elseif (strlen(postRequestParameter('country')) != 2) {
                // Country code is invalid
-               $FORM_ERRORS[] = '{--SPONSOR_COUNTRY_IS_INVALID--}';
+               $formErrors[] = '{--SPONSOR_COUNTRY_IS_INVALID--}';
        }
 
        // 3. ZIP code
        if (!isPostRequestParameterSet('zip')) {
                // ZIP code is empty
-               $FORM_ERRORS[] = '{--SPONSOR_ZIP_IS_EMPTY--}';
+               $formErrors[] = '{--SPONSOR_ZIP_IS_EMPTY--}';
        } elseif (bigintval(postRequestParameter('zip')) != postRequestParameter('zip')) {
                // ZIP is invalid
-               $FORM_ERRORS[] = '{--SPONSOR_ZIP_IS_INVALID--}';
+               $formErrors[] = '{--SPONSOR_ZIP_IS_INVALID--}';
                setPostRequestParameter('zip', '');
        }
 
        // 4. City
        if (!isPostRequestParameterSet('city')) {
                // City is empty
-               $FORM_ERRORS[] = '{--SPONSOR_CITY_IS_EMPTY--}';
+               $formErrors[] = '{--SPONSOR_CITY_IS_EMPTY--}';
        } // END - if
 
        // 5. Phone number
        if (!isPostRequestParameterSet('phone')) {
                // City is empty
-               $FORM_ERRORS[] = '{--SPONSOR_PHONE_IS_EMPTY--}';
+               $formErrors[] = '{--SPONSOR_PHONE_IS_EMPTY--}';
        } // END - if
 
        // 6. Homepage URL
        if (!isPostRequestParameterSet('url')) {
                // Homepage URL is empty
-               $FORM_ERRORS[] = '{--SPONSOR_URL_IS_EMPTY--}';
+               $formErrors[] = '{--SPONSOR_URL_IS_EMPTY--}';
        } elseif (!isUrlValid(postRequestParameter('url'))) {
                // Homepage URL is invalid
-               $FORM_ERRORS[] = '{--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[] = '{--SPONSOR_EMAIL_IS_INVALID--}';
+               $formErrors[] = '{--SPONSOR_EMAIL_IS_INVALID--}';
        } elseif (isSponsorRegisteredWithEmail(postRequestParameter('email'))) {
                // Email already found in database!
-               $FORM_ERRORS[] = '{--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[] = '{--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[] = '{--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[] = '{--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[] = '{--SPONSOR_PASSWORDS_MISMATCH--}';
+                       $formErrors[] = '{--SPONSOR_PASSWORDS_MISMATCH--}';
                } else {
                        if (!isPostRequestParameterSet('pass1')) {
                                // Password 1 is empty
-                               $FORM_ERRORS[] = '{--SPONSOR_PASSWORD1_EMPTY--}';
+                               $formErrors[] = '{--SPONSOR_PASSWORD1_EMPTY--}';
                        }
 
                        if (!isPostRequestParameterSet('pass2')) {
                                // Password 2 is empty
-                               $FORM_ERRORS[] = '{--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[] = '{--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[] = '{--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' => '{--SPONSOR_REGISTRATION_FAILED--}',
@@ -207,9 +205,13 @@ if ((isFormSent()) && (count($FORM_ERRORS) == 0)) {
        );
 
        // 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,64 +221,14 @@ 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'), '{--SPONSOR_PLEASE_CONFIRM_SUBJECT--}', $message);
-
-                               // Send mail to admin
-                               sendAdminNotification('{--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
@@ -284,32 +236,30 @@ WHERE `id`='%s' LIMIT 1",
 FROM
        `{?_MYSQL_PREFIX?}_sponsor_paytypes`
 ORDER BY 
-       pay_name` ASC', __FILE__, __LINE__);
+       `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">';
+               $OUT = '';
                while ($content = SQL_FETCHARRAY($result)) {
                        // Prepare content for output
                        $content['res'] = translateComma($content['pay_rate'] * $content['pay_min_count']);
 
                        // Load row template and switch color
-                       $OUT .= loadTemplate('guest_sponsor_payment_row', false, $content);
+                       $OUT .= loadTemplate('guest_sponsor_payment_row', true, $content);
                } // END - while
-               $OUT .= '</table>';
 
                // 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','receive_warnings_y','receive_warnings_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
 
@@ -330,10 +280,10 @@ ORDER BY
                        $OUT = '';
 
                        // Errors found?
-                       if (count($FORM_ERRORS) > 0) {
-                               $OUT = loadTemplate('admin_settings_saved', true, '{--SPONSOR_REGISTER_SOMETHING_MISSING--}');
+                       if (count($formErrors) > 0) {
+                               $OUT = displayMessage('{--SPONSOR_REGISTER_SOMETHING_MISSING--}', true);
                                $OUT .= '<ol>';
-                               foreach ($FORM_ERRORS as $error) {
+                               foreach ($formErrors as $error) {
                                        $OUT .= '<li>' . $error . '</li>';
                                } // END - foreach
 
@@ -341,14 +291,22 @@ ORDER BY
                        } // END - if
 
                        $content['form_errors'] = $OUT;
-                       $content['refid']       = bigintval(postRequestParameter('refid'));
+
+                       // @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, '{--SPONSOR_PAYMENT_LIST_IS_EMPTY--}');
+               displayMessage('{--SPONSOR_PAYMENT_LIST_IS_EMPTY--}');
        }
 
        // Free memory