Yet another 'empty version' fixed
[mailer.git] / inc / libs / user_functions.php
index 16e7344649016d6da46c938af0d8511a35ea3090..18fd084d45f53da630e732fa215638e04f581c8f 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /************************************************************************
- * MXChange v0.2.1                                    Start: 07/16/2004 *
- * ===============                              Last change: 10/27/2004 *
+ * Mailer v0.2.1-FINAL                                Start: 07/16/2004 *
+ * ===================                          Last change: 10/27/2004 *
  *                                                                      *
  * -------------------------------------------------------------------- *
  * File              : user_functions.php                               *
@@ -147,7 +147,7 @@ function addPageNavigation ($PAGES, $offset, $show_form, $colspan,$return=false)
 
        $OUT = '';
        for ($page = 1; $page <= $PAGES; $page++) {
-               if (($page == getRequestElement('page')) || ((!isGetRequestElementSet('page')) && ($page == '1'))) {
+               if (($page == getRequestElement('page')) || ((!isGetRequestElementSet('page')) && ($page == 1))) {
                        $OUT .= '<strong>-';
                } else {
                        if (!isGetRequestElementSet('letter')) setRequestGetElement('letter', getMessage('_ALL2'));
@@ -166,7 +166,7 @@ function addPageNavigation ($PAGES, $offset, $show_form, $colspan,$return=false)
 
                $OUT .= $page;
 
-               if (($page == getRequestElement('page')) || ((!isGetRequestElementSet('page')) && ($page == '1'))) {
+               if (($page == getRequestElement('page')) || ((!isGetRequestElementSet('page')) && ($page == 1))) {
                        $OUT .= '-</strong>';
                } else  {
                        $OUT .= '</a>';
@@ -223,7 +223,7 @@ LIMIT 1",
 // Selects a random user id as the new referal id if they have at least X confirmed mails in this run
 function determineRandomReferalId () {
        // Default is zero refid
-       $refid = 0;
+       $refid = '0';
 
        // Is the extension version fine?
        if (getExtensionVersion('user') >= '0.3.4') {
@@ -261,8 +261,10 @@ function determineRandomReferalId () {
 // Do the user login
 function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.php?module=index&amp;what=login&amp;login=') {
        // Init variables
-       $dmy = ''; $add = '';
-       $errorCode = 0;
+       $dmy = '';
+       $add = '';
+       $errorCode = '0';
+       $ext = '';
 
        // Add last_login if available
        $lastOnline = '';
@@ -280,25 +282,24 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p
        );
 
        // Check login data
-       if ((isExtensionActive('nickname')) && (isNicknameOrUserid($userid))) {
+       if ((isExtensionActive('nickname')) && (isNicknameUsed($userid))) {
                // Nickname entered
-               $result = SQL_QUERY_ESC("SELECT `userid`, `password`, `last_online`" . $lastOnline . " FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `nickname`='%s' AND `status`='CONFIRMED' LIMIT 1",
-                       array($userid), __FUNCTION__, __LINE__);
+               fetchUserData($userid, 'nickname');
+       } elseif (isNicknameUsed($userid)) {
+               // No nickname installed
+               $errorCode = getCode('EXTENSION_PROBLEM');
+               $ext = 'nickname';
        } else {
                // Direct userid entered
-               $result = SQL_QUERY_ESC("SELECT `userid`, `password`, `last_online`" . $lastOnline . " FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s AND `status`='CONFIRMED' LIMIT 1",
-                       array($userid, $content['hash']), __FUNCTION__, __LINE__);
+               fetchUserData($userid);
        }
 
        // Load entry
-       $content = SQL_FETCHARRAY($result);
+       $content = getUserDataArray();
        if (!empty($content['userid'])) $userid = bigintval($content['userid']);
 
        // Is there an entry?
-       if ((SQL_NUMROWS($result) == 1) && ((isNicknameUsed($content['userid'] === true) && (!empty($content['userid']))) || ($content['userid'] == $userid))) {
-               // Free result
-               SQL_FREERESULT($result);
-
+       if (((isUserDataValid()) && (getUserData('status') == 'CONFIRMED') && (!empty($content['userid']))) || ($content['userid'] == $userid)) {
                // Check for old MD5 passwords
                if ((strlen($content['password']) == 32) && (md5($passwd) == $content['password'])) {
                        // Just set the hash to the password from DB... :)
@@ -324,11 +325,9 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p
                        // Probe for last online timemark
                        $probe = time() -  $content['last_online'];
                        if (!empty($content['last_login'])) $probe = time() - $content['last_login'];
-                       if ((getExtensionVersion('bonus') >= '0.2.2') && ($probe >= getConfig('login_timeout'))) {
+                       if ((isExtensionInstalledAndNewer('bonus', '0.2.2')) && ($probe >= getConfig('login_timeout'))) {
                                // Add login bonus to user's account
-                               $add = sprintf(", `login_bonus`=`login_bonus`+%s",
-                                       (float)getConfig('login_bonus')
-                               );
+                               $add = ', `login_bonus`=`login_bonus`+{?login_bonus?}';
                                $GLOBALS['bonus_payed'] = true;
 
                                // Subtract login bonus from userid's account or jackpot
@@ -340,7 +339,7 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p
 
                        // Update global array
                        // @TODO Make this filter working: $URL = runFilterChain('do_login', array('content' => $content, 'addon' => $ADDON));
-                       setUserId($userid);
+                       setMemberId($userid);
 
                        // Try to set session data (which shall normally always work!)
                        if ((setSession('userid', $userid )) && (setSession('u_hash', $content['hash']))) {
@@ -378,25 +377,17 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p
                        // Wrong password!
                        $errorCode = getCode('WRONG_PASS');
                }
-       } elseif (((isNicknameUsed($content['userid'])) && (!empty($content['userid']))) || ($content['userid'] == $userid)) {
+       } elseif (((isExtensionActive('nickname')) && (isNicknameUsed($content['userid'])) && (!empty($content['userid']))) || ($content['userid'] == $userid)) {
                // Other account status?
-               // @TODO Can this query be merged with above query?
-               $result = SQL_QUERY_ESC("SELECT `status` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1",
-                       array($userid), __FUNCTION__, __LINE__);
-
-               // Entry found?
-               if (SQL_NUMROWS($result) == 1) {
-                       // Load status
-                       list($status) = SQL_FETCHROW($result);
-
+               if (fetchUserData($userid)) {
                        // Create an error code from given status
-                       $errorCode = generateErrorCodeFromUserStatus($status);
+                       $errorCode = generateErrorCodeFromUserStatus(getUserData('status'));
                } else {
-                       // ID not found!
+                       // id not found!
                        $errorCode = getCode('WRONG_ID');
                }
-       } else {
-               // ID not found!
+       } elseif ($errorCode == '0') {
+               // id not found!
                $errorCode = getCode('WRONG_ID');
        }
 
@@ -404,6 +395,9 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p
        if ($errorCode > 0) {
                // Then reconstruct the URL
                $URL = $errorUrl . $errorCode;
+
+               // Extension set? Then add it as well.
+               if (!empty($ext)) $URL .= '&amp;ext=' . $ext;
        } // END - if
 
        // Return URL
@@ -420,6 +414,7 @@ function doNewUserPassword ($email, $userid) {
        $result = false;
 
        // Probe userid/nickname
+       // @TODO We should try to rewrite this to fetchUserData() somehow
        if ((isExtensionActive('nickname')) && (isNicknameOrUserid($userid))) {
                // Nickname entered
                $result = SQL_QUERY_ESC("SELECT `userid`, `status` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `nickname`='%s' OR `userid`='%s' OR `email`='%s' LIMIT 1",
@@ -450,7 +445,7 @@ function doNewUserPassword ($email, $userid) {
                                array(generateHash($NEW_PASS), $userid), __FUNCTION__, __LINE__);
 
                        // Prepare data and message for email
-                       $message = loadEmailTemplate('new-pass', array('new_pass' => $NEW_PASS), $userid);
+                       $message = loadEmailTemplate('new-pass', array('new_pass' => $NEW_PASS, 'nickname' => $userid), $userid);
 
                        // ... and send it away
                        sendEmail($userid, getMessage('GUEST_NEW_PASSWORD'), $message);
@@ -465,7 +460,7 @@ function doNewUserPassword ($email, $userid) {
                        redirectToUrl('modules.php?module=index&amp;what=login&amp;login='.$errorCode);
                }
        } else {
-               // ID or email is wrong
+               // id or email is wrong
                loadTemplate('admin_settings_saved', false, '<span class="guest_failed">{--GUEST_WRONG_ID_EMAIL--}</span>');
        }