]> git.mxchange.org Git - mailer.git/blobdiff - inc/libs/user_functions.php
Moved "fix" files (which only helps to fix stuff) in own inc/fixes/ folder.
[mailer.git] / inc / libs / user_functions.php
index 34c2c5d8e8cd20cbe617a687d1976bab31c62272..5c0dcb49467a423e911e4b1a8a058f1c59d9d7c6 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2013 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2016 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -578,19 +578,46 @@ function doConfirmUserAccount ($hash) {
        // Search for an unconfirmed or confirmed account
        $result = sqlQueryEscaped("SELECT `userid`, `refid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `user_hash`='%s' AND (`status`='UNCONFIRMED' OR `status`='CONFIRMED') LIMIT 1",
                array($hash), __FILE__, __LINE__);
-       if (sqlNumRows($result) == 1) {
-               // Ok, he want's to confirm now so we load some data
-               list($userid, $refid) = sqlFetchRow($result);
 
-               // Fetch user data
-               if (!fetchUserData($userid)) {
-                       // Not found, should not happen
-                       reportBug(__FILE__, __LINE__, 'User account ' . $userid . ' not found.');
-               } // END - if
+       // One result should be found
+       if (ifSqlHasZeroNumRows($result)) {
+               // Nothing found or tried to confirm twice?
+               displayMessage('{--GUEST_CONFIRMED_TWICE--}');
+               return;
+       } // END - if
 
-               // Load all data and add points
-               $content = getUserDataArray();
+       // Okay, the user want's to confirm now so we load some data
+       list($userid, $refid) = sqlFetchRow($result);
 
+       // Fetch user data
+       if (!fetchUserData($userid)) {
+               // Not found, should not happen
+               reportBug(__FILE__, __LINE__, 'User account ' . $userid . ' not found.');
+       } // END - if
+
+       // Load all data and add points
+       $content = merge_array($content, getUserDataArray());
+
+       // Is 'user' updated?
+       if (isExtensionInstalledAndNewer('user', '0.6.3')) {
+               // Unlock his account (but only when it is on UNCONFIRMED!)
+               sqlQueryEscaped("UPDATE
+       `{?_MYSQL_PREFIX?}_user_data`
+SET
+       `status`='CONFIRMED',
+       `user_hash`=NULL,
+       `confirmed_timestamp`=NOW(),
+       `confirmed_ip_address`='%s'
+WHERE
+       `user_hash`='%s' AND
+       `status`='UNCONFIRMED'
+LIMIT 1",
+                       array(
+                               determineRealRemoteAddress(),
+                               $hash
+                       ), __FILE__, __LINE__
+               );
+       } else {
                // Unlock his account (but only when it is on UNCONFIRMED!)
                sqlQueryEscaped("UPDATE
        `{?_MYSQL_PREFIX?}_user_data`
@@ -601,68 +628,65 @@ WHERE
        `user_hash`='%s' AND
        `status`='UNCONFIRMED'
 LIMIT 1",
-                       array($hash), __FILE__, __LINE__);
-
-               // Was it updated?
-               if (!ifSqlHasZeroAffectedRows()) {
-                       // Send email if updated
-                       $message = loadEmailTemplate('guest_user_confirmed', $content, bigintval($userid));
-
-                       // And send him right away the confirmation mail
-                       sendEmail($userid, '{--GUEST_THANX_CONFIRM--}', $message);
-
-                       // Maybe he got "referraled"?
-                       if ((isValidId($refid)) && ($refid != $userid)) {
-                               // Select the referral userid
-                               if (fetchUserData($refid)) {
-                                       // Update ref counter...
-                                       updateReferralCounter($refid);
-
-                                       // If version matches add ref bonus to refid's account
-                                       if ((isExtensionInstalledAndNewer('bonus', '0.4.4')) && (isBonusRallyeActive())) {
-                                               // Add points (directly only!)
-                                               sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `bonus_ref`=`bonus_ref`+{?bonus_ref?} WHERE `userid`=%s LIMIT 1",
-                                                       array(bigintval($refid)), __FILE__, __LINE__);
-
-                                               // Subtract points from system
-                                               handleBonusPoints(getBonusRef(), $refid);
-                                       } // END - if
+                       array(
+                               $hash
+                       ), __FILE__, __LINE__
+               );
+       }
 
-                                       // Add one-time referral bonus over referral system or directly
-                                       initReferralSystem();
-                                       addPointsThroughReferralSystem('referral_bonus', $refid, getPointsRef(), bigintval($userid));
-                               } // END - if
-                       } // END - if
+       // Was it updated?
+       if (ifSqlHasZeroAffectedRows()) {
+               // Nobody was found unter this hash key... or our new member want's to confirm twice?
+               displayMessage('{--GUEST_CONFIRMED_TWICE--}');
+               return;
+       } // END - if
+
+       // Load email template
+       $message = loadEmailTemplate('guest_user_confirmed', $content, bigintval($userid));
+
+       // And send him right away the confirmation mail
+       sendEmail($userid, '{--GUEST_THANX_CONFIRM--}', $message);
 
-                       if (isExtensionActive('rallye')) {
-                               // Add user to rallye (or not?)
-                               addUserToReferralRallye(bigintval($userid));
+       // Maybe he got "referraled"?
+       if ((isValidId($refid)) && ($refid != $userid)) {
+               // Select the referral userid
+               if (fetchUserData($refid)) {
+                       // Update ref counter...
+                       updateReferralCounter($refid);
+
+                       // If version matches add ref bonus to refid's account
+                       if ((isExtensionInstalledAndNewer('bonus', '0.4.4')) && (isBonusRallyeActive())) {
+                               // Add points (directly only!)
+                               sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `bonus_ref`=`bonus_ref`+{?bonus_ref?} WHERE `userid`=%s LIMIT 1",
+                                       array(bigintval($refid)), __FILE__, __LINE__);
+
+                               // Subtract points from system
+                               handleBonusPoints(getBonusRef(), $refid);
                        } // END - if
 
-                       // Account confirmed!
-                       if (isExtensionActive('lead')) {
-                               // Set special lead cookie
-                               setSession('lead_userid', bigintval($userid));
+                       // Add one-time referral bonus over referral system or directly
+                       initReferralSystem();
+                       addPointsThroughReferralSystem('referral_bonus', $refid, getPointsRef(), bigintval($userid));
+               } // END - if
+       } // END - if
 
-                               // Lead-Code mode enabled
-                               redirectToUrl('lead-confirm.php');
-                       } else {
-                               $content['message'] = '{--GUEST_CONFIRMED_DONE--}';
-                               $content['userid']  = bigintval($userid);
-                       }
-               } elseif (isExtensionActive('lead')) {
-                       // Set special lead cookie
-                       setSession('lead_userid', bigintval($userid));
+       // @TODO Rewrite this to 2 filters as a possible redirect must always come last
+       if (isExtensionActive('rallye')) {
+               // Add user to rallye (or not?)
+               addUserToReferralRallye(bigintval($userid));
+       } // END - if
 
-                       // Lead-Code mode enabled
-                       redirectToUrl('lead-confirm.php');
-               } else {
-                       // Nobody was found unter this hash key... or our new member want's to confirm twice?
-                       $content['message'] = '{--GUEST_CONFIRMED_TWICE--}';
-               }
+       // Account confirmed!
+       if (isExtensionActive('lead')) {
+               // Set special lead cookie
+               setSession('lead_userid', bigintval($userid));
+
+               // Lead-Code mode enabled
+               redirectToUrl('lead-confirm.php');
        } else {
-               // Nobody was found unter this hash key... or our new member want's to confirm twice?
-               $content['message'] = '{--GUEST_CONFIRMED_TWICE--}';
+               // Regular confirmation
+               $content['message'] = '{--GUEST_CONFIRMED_DONE--}';
+               $content['userid']  = bigintval($userid);
        }
 
        // Load template
@@ -875,8 +899,8 @@ function isUserSubIdAssignedToMember ($subId, $userid = NULL) {
                                                'user_subids',
                                                'id',
                                                'userid',
-                                               true,
-                                               sprintf(" AND `id`=%s", bigintval($subId))
+                                               TRUE,
+                                               sprintf(' AND `id`=%s', bigintval($subId))
                                ) == 1
                        )
                );
@@ -923,6 +947,74 @@ function getTotalMemberSubIds () {
        return $GLOBALS[__FUNCTION__];
 }
 
+// Displays generic user registration form
+function doDisplayGenericUserRegistrationForm () {
+       // Do this only if form is sent
+       if (isFormSent()) {
+               if (postRequestElement('agree') == '!') {
+                       registerOutputFailedMessage('HAVE_TO_AGREE');
+               } // END - if
+
+               if (postRequestElement('email') == '!') {
+                       registerOutputFailedMessage('ENTER_EMAIL');
+                       setPostRequestElement('email', '');
+               } elseif (postRequestElement('email') == '?') {
+                       registerOutputFailedMessage('GUEST_EMAIL_IS_ALREADY_REGISTERED');
+                       setPostRequestElement('email', '');
+               }
+
+               if (postRequestElement('surname') == '!') {
+                       registerOutputFailedMessage('ENTER_SURNAME');
+                       setPostRequestElement('surname', '');
+               } // END - if
+
+               if (postRequestElement('family') == '!') {
+                       registerOutputFailedMessage('ENTER_FAMILY');
+                       setPostRequestElement('family', '');
+               } // END - if
+
+               if ((postRequestElement('password1') == '!') && (postRequestElement('password2') == '!')) {
+                       registerOutputFailedMessage('ENTER_BOTH_PASSWORDS');
+               } elseif (postRequestElement('password1') == '!') {
+                       registerOutputFailedMessage('ENTER_PASSWORD1');
+               } elseif (postRequestElement('password2') == '!') {
+                       registerOutputFailedMessage('ENTER_PASSWORD2');
+               }
+
+               if ((isset($GLOBALS['registration_weak_password'])) && ($GLOBALS['registration_weak_password'] === TRUE)) {
+                       registerOutputFailedMessage('GUEST_WEAK_PASSWORD');
+               } // END - if
+
+               if ((isset($GLOBALS['registration_ip_timeout'])) && ($GLOBALS['registration_ip_timeout'] === TRUE)) {
+                       registerOutputFailedMessage('REMOTE_ADDR_TIMEOUT');
+               } // END - if
+
+               if ((!empty($GLOBALS['registration_selected_cats'])) && ($GLOBALS['registration_selected_cats'] < getLeastCats())) {
+                       registerOutputFailedMessage('', '{--CHOOSE_MORE_CATEGORIES--}');
+               } // END - if
+       } // END - if
+
+       // Generate birthday selection
+       $content['birthday_selection'] = generateDayMonthYearSelectionBox(postRequestElement('day'),postRequestElement('month'),postRequestElement('year'));
+
+       // ZIP codes are numerical values
+       $content['zip'] = '';
+       if ((isPostRequestElementSet('zip')) && (isValidNumber(postRequestElement('zip')))) {
+               $content['zip'] = bigintval(postRequestElement('zip'));
+       } // END - if
+
+       // Other values
+       foreach (array('gender', 'surname', 'family', 'street_nr', 'city', 'email') as $entry) {
+               $content[$entry] = sqlEscapeString(postRequestElement($entry));
+       } // END - foreach
+
+       // Set must-fillout fields
+       $content = runFilterChain('register_must_fillout', $content);
+
+       // Display registration form
+       loadTemplate('guest_register', FALSE, $content);
+}
+
 //-----------------------------------------------------------------------------
 //                                EL code functions
 //-----------------------------------------------------------------------------