isAdmin() uses now for 'caching' its result
authorRoland Häder <roland@mxchange.org>
Fri, 30 Oct 2009 13:11:45 +0000 (13:11 +0000)
committerRoland Häder <roland@mxchange.org>
Fri, 30 Oct 2009 13:11:45 +0000 (13:11 +0000)
inc/libs/bonus_functions.php
inc/monthly/monthly_bonus.php
inc/mysql-manager.php

index 678c68c..8023871 100644 (file)
@@ -247,22 +247,21 @@ function handleBonusPoints ($mode) {
                $points = $mode;
        }
 
+       // Check his amount first
+       $total = countSumTotalData(getConfig('bonus_userid'), 'user_points', 'points') - countSumTotalData(getConfig('bonus_userid'), 'user_data', 'used_points');
+
        // Subtract points from...
        switch (getConfig('bonus_mode')) {
                case 'JACKPOT': // ... jackpot
                        if ((isExtensionActive('jackpot')) && (subtractPointsFromJackpot($points) == -1) && (getConfig('bonus_userid') > 0)) {
-                               // Check points amount first...
-                               $total = countSumTotalData(getConfig('bonus_userid'), 'user_points', 'points') - countSumTotalData(getConfig('bonus_userid'), 'user_data', 'used_points');
                                if ($total >= $points) {
                                        // Subtract points from userid's account
-                                       subtractPoints('bonus_payout_jackpot', getConfig('bonus_userid'), $points);
+                                       subtractPointsFromJackpot('bonus_payout_jackpot', getConfig('bonus_userid'), $points);
                                } // END - if
                        } // END - if
                        break;
 
                case 'UID': // ... userid's account
-                       // Check his amount first
-                       $total = countSumTotalData(getConfig('bonus_userid'), 'user_points', 'points') - countSumTotalData(getConfig('bonus_userid'), 'user_data', 'used_points');
                        if ($total >= $points) {
                                // Subtract points from userid's account
                                subtractPoints('bonus_payout_userid', getConfig('bonus_userid'), $points);
index 2bbe3d9..7ae9f44 100644 (file)
@@ -53,7 +53,6 @@ $curr = date('m', time());
 if (($curr != getConfig('last_month')) && (getConfig('bonus_ranks') > 0) && (getOutputMode() != 1)) {
        // Extension 'autopurge' is inactive or purging of inactive accounts is deactivated
        $whereStatement1 = "WHERE `status`='CONFIRMED'";
-       $whereStatement2 = getConfig('bonus_ranks');
 
        // Shall I keep inactive members away from here? (mostly wanted in an "active-rallye" ...)
        if (isExtensionActive('autopurge')) {
@@ -61,34 +60,33 @@ if (($curr != getConfig('last_month')) && (getConfig('bonus_ranks') > 0) && (get
                if (getConfig('ap_inactive_since') > 0) {
                        // Okay, include last online timestamp
                        $whereStatement1 = "WHERE `status`='CONFIRMED' AND `last_online` >= (UNIX_TIMESTAMP() - {?ap_inactive_since?})";
-                       $whereStatement2 = getConfig('bonus_ranks');
                } // END - if
        } // END - if
 
        // Add more bonus points here
        $add = '';
        // @TODO Rewrite this to a filter
-       if (getConfig('bonus_click_yn') == 'Y') $add .= " + `turbo_bonus`";
-       if (getConfig('bonus_login_yn') == 'Y') $add .= " + `login_bonus`";
-       if (getConfig('bonus_order_yn') == 'Y') $add .= " + `bonus_order`";
-       if (getConfig('bonus_stats_yn') == 'Y') $add .= " + `bonus_stats`";
-       if (getConfig('bonus_ref_yn')   == 'Y') $add .= " + `bonus_ref`";
+       if (getConfig('bonus_click_yn') == 'Y') $add .= ' + `turbo_bonus`';
+       if (getConfig('bonus_login_yn') == 'Y') $add .= ' + `login_bonus`';
+       if (getConfig('bonus_order_yn') == 'Y') $add .= ' + `bonus_order`';
+       if (getConfig('bonus_stats_yn') == 'Y') $add .= ' + `bonus_stats`';
+       if (getConfig('bonus_ref_yn')   == 'Y') $add .= ' + `bonus_ref`';
 
        // Shall we add some entries?
        if (!empty($add)) {
-               $whereStatement1 .= " AND (0" . $add . ") > 0";
+               $whereStatement1 .= ' AND (0' . $add . ') > 0';
        } // END - if
 
        // Run SQL string to check for accounts
-       $result_main = SQL_QUERY_ESC("SELECT `userid`, `email`, `gender`, `surname`, `family`, (0".$add.") AS points
+       $result_main = SQL_QUERY("SELECT
+       `userid`, `email`, `gender`, `surname`, `family`, (0" . $add . ") AS points
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
-".$whereStatement1."".$add."
+" . $whereStatement1 . "
 ORDER BY
        `points` DESC,
        `userid` ASC
-LIMIT %s",
-               array($whereStatement2), __FILE__, __LINE__);
+LIMIT {?bonus_ranks?}", __FILE__, __LINE__);
 
        // Some entries were found?
        if (SQL_NUMROWS($result_main) > 0) {
@@ -104,12 +102,12 @@ LIMIT %s",
                                $content['points'] = translateComma($content['points']);
 
                                // Load email template and email it away
-                               $message = loadEmailTemplate('member_bonus', $content['points'], bigintval($content['userid']));
+                               $message = loadEmailTemplate('member_bonus', $content, bigintval($content['userid']));
                                sendEmail($content['email'], getMessage('BONUS_MONTHLY_ONLINE_BONUS'), $message);
                        } // END - if
                } // END - while
 
-               // Reset accounts
+               // Reset all accounts
                $result = SQL_QUERY('UPDATE `{?_MYSQL_PREFIX?}_user_data`
 SET
        `turbo_bonus`=0,
index 4736659..9c5f649 100644 (file)
@@ -651,49 +651,52 @@ function isAdmin ($admin = '') {
        } // END - if
        //* DEBUG: */ print(__FUNCTION__.':'.$admin.'/'.$passCookie.'<br />');
 
-       // Search in array for entry
-       if (isset($GLOBALS['admin_hash'])) {
-               // Use cached string
-               $valPass = $GLOBALS['admin_hash'];
-       } elseif ((!empty($passCookie)) && (isAdminHashSet($admin) === true) && (!empty($admin))) {
-               // Login data is valid or not?
-               $valPass = generatePassString(getAdminHash($admin));
-
-               // Cache it away
-               $GLOBALS['admin_hash'] = $valPass;
-
-               // Count cache hits
-               incrementStatsEntry('cache_hits');
-       } elseif ((!empty($admin)) && ((!isExtensionActive('cache'))) || (isAdminHashSet($admin) === false)) {
-               // Search for admin
-               $result = SQL_QUERY_ESC("SELECT HIGH_PRIORITY `password` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `login`='%s' LIMIT 1",
-                       array($admin), __FUNCTION__, __LINE__);
+       // Do we have cache?
+       if (!isset($GLOBALS['is_admin'][$admin]
+               // Search in array for entry
+               if (isset($GLOBALS['admin_hash'])) {
+                       // Use cached string
+                       $valPass = $GLOBALS['admin_hash'];
+               } elseif ((!empty($passCookie)) && (isAdminHashSet($admin) === true) && (!empty($admin))) {
+                       // Login data is valid or not?
+                       $valPass = generatePassString(getAdminHash($admin));
+
+                       // Cache it away
+                       $GLOBALS['admin_hash'] = $valPass;
+
+                       // Count cache hits
+                       incrementStatsEntry('cache_hits');
+               } elseif ((!empty($admin)) && ((!isExtensionActive('cache'))) || (isAdminHashSet($admin) === false)) {
+                       // Search for admin
+                       $result = SQL_QUERY_ESC("SELECT HIGH_PRIORITY `password` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `login`='%s' LIMIT 1",
+                               array($admin), __FUNCTION__, __LINE__);
 
-               // Is he admin?
-               $passDB = '';
-               if (SQL_NUMROWS($result) == 1) {
-                       // Admin login was found so let's load password from DB
-                       list($passDB) = SQL_FETCHROW($result);
+                       // Is he admin?
+                       $passDB = '';
+                       if (SQL_NUMROWS($result) == 1) {
+                               // Admin login was found so let's load password from DB
+                               list($passDB) = SQL_FETCHROW($result);
 
-                       // Temporary cache it
-                       setAdminHash($admin, $passDB);
+                               // Temporary cache it
+                               setAdminHash($admin, $passDB);
 
-                       // Generate password hash
-                       $valPass = generatePassString($passDB);
-               } // END - if
+                               // Generate password hash
+                               $valPass = generatePassString($passDB);
+                       } // END - if
 
-               // Free memory
-               SQL_FREERESULT($result);
-       }
+                       // Free memory
+                       SQL_FREERESULT($result);
+               }
 
-       if (!empty($valPass)) {
-               // Check if password is valid
-               //* DEBUG: */ print(__FUNCTION__ . ':(' . $valPass . '==' . $passCookie . ')='.intval($valPass == $passCookie).'<br />');
-               $ret = (($valPass == $passCookie) || ((strlen($valPass) == 32) && ($valPass == md5($passCookie))) || (($valPass == '*FAILED*') && (!isExtensionActive('cache'))));
+               if (!empty($valPass)) {
+                       // Check if password is valid
+                       //* DEBUG: */ print(__FUNCTION__ . ':(' . $valPass . '==' . $passCookie . ')='.intval($valPass == $passCookie).'<br />');
+                       $GLOBALS['is_admin'][$admin] = (($valPass == $passCookie) || ((strlen($valPass) == 32) && ($valPass == md5($passCookie))) || (($valPass == '*FAILED*') && (!isExtensionActive('cache'))));
+               } // END - if
        } // END - if
 
        // Return result of comparision
-       return $ret;
+       return $GLOBALS['is_admin'][$admin];
 }
 
 // Generates a list of "max receiveable emails per day"