]> git.mxchange.org Git - mailer.git/blobdiff - inc/libs/rallye_functions.php
Fix added for extension update with always active extensions, thanks to profi-concept
[mailer.git] / inc / libs / rallye_functions.php
index 37c25d174f818987b3e1fd42f07e8142945fe27d..af9a01b440409726a0e0b1003fc4150149d577b3 100644 (file)
@@ -367,8 +367,7 @@ function RALLYE_EXPIRE_RALLYES($result)
 
        // Just count...
        $TOTAL = 0;
-       foreach($prices['uid'] as $key => $uid)
-       {
+       foreach($prices['uid'] as $key => $uid) {
                // Check status
                //   active = 1: account is still confirmed
                //   active = 0: account is deleted or locked
@@ -382,28 +381,25 @@ LIMIT 1", array(bigintval($uid)), __FILE__, __LINE__);
                $prices['active'][$key] = $active;
 
                // Allow valid and active users with at least one ref to get points
-               if (($uid > 0) && ($prices['ref'][$key] > 0) && ($active == 1) && ($prices['cpoints'][$key] > 0))
-               {
+               if (($uid > 0) && ($prices['ref'][$key] > 0) && ($active == 1) && ($prices['cpoints'][$key] > 0)) {
                        $TOTAL++;
-               }
-       }
+               } // END - if
+       } // END - foreach
 
-       if (($TOTAL < $min_prices) || ($TOTAL == 0))
-       {
+       if (($TOTAL < $min_prices) || ($TOTAL == 0)) {
                // Do not end this rallye!
+               unset($DATA);
                return;
-       }
+       } // END - if
 
        // Expire rallye
        $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_rallye_data SET expired='Y' WHERE id=%s LIMIT 1",
-        array(bigintval($id)), __FILE__, __LINE__);
+               array(bigintval($id)), __FILE__, __LINE__);
 
        // Run array through (by uid is the most important 2nd-level-array)
-       foreach($prices['uid'] as $key => $uid)
-       {
+       foreach($prices['uid'] as $key => $uid) {
                // Allow valid and active users with at least one ref to get points
-               if (($uid > 0) && ($prices['ref'][$key] > 0) && ($prices['active'][$key] == 1) && ($prices['cpoints'][$key] > 0))
-               {
+               if (($uid > 0) && ($prices['ref'][$key] > 0) && ($prices['active'][$key] == 1) && ($prices['cpoints'][$key] > 0)) {
                        // Transfer data to array for the mail template
                        $DATA['level']  = $prices['level'][$key];
                        $DATA['points'] = $prices['points'][$key];
@@ -413,7 +409,7 @@ LIMIT 1", array(bigintval($uid)), __FILE__, __LINE__);
                        if ($DATA['points'] > 0) {
                                // Add points directly to user's account
                                ADD_POINTS_REFSYSTEM($uid, $DATA['points'], false, "0", false, "direct");
-                       }
+                       } // END - if
 
                        if ($notify == "Y") {
                                // Prepare infos for the mail template
@@ -447,8 +443,8 @@ LIMIT 1", array(bigintval($uid)), __FILE__, __LINE__);
                        $cnt++;
                        $users['uid'][$uid] = $uid;
                        $users['poi'][$uid] = $DATA['infos'];
-               }
-       }
+               } // END - if
+       } // END - foreach
 
        // Select template depending on notfication is switch on / off
        if ($notify == "Y") {
@@ -527,7 +523,7 @@ function RALLYE_LOAD_USERS_ARRAY($rallye)
                'cpoints' => array(),
        );
 
-       // Load users                    uid    old   points earned
+       // Load users                          uid    old  points earned
        $result_user = SQL_QUERY_ESC("SELECT userid, refs, curr_points FROM "._MYSQL_PREFIX."_rallye_users WHERE rallye_id=%s ORDER BY userid",
         array(bigintval($rallye)), __FILE__, __LINE__);
        while(list($uid, $refs, $cpoints) = SQL_FETCHROW($result_user))
@@ -650,6 +646,7 @@ function RALLYE_LIST_WINNERS($rallye,$default=0)
 function RALLYE_DELETE_EXPIRED_RALLYES()
 {
        global $DATA, $_CONFIG;
+
        // Check for expired rallyes
        $EXPIRE = $_CONFIG['one_day'] * 3; // @TODO The hard-coded value...
        $result_rallye = SQL_QUERY_ESC("SELECT id, title, start_time, end_time
@@ -738,6 +735,7 @@ function RALLYE_TEMPLATE_SELECTION($name="template", $default="")
 //
 function RALLYE_GET_REFCOUNT($uid, $old=0) {
        global $_CONFIG, $cacheArray;
+
        // Check current refs
        if (GET_EXT_VERSION("cache") >= "0.1.2") {
                // Get refs from cache
@@ -745,14 +743,24 @@ function RALLYE_GET_REFCOUNT($uid, $old=0) {
                foreach ($cacheArray['ref_system']['userid'] as $id => $u_id) {
                        // Do we have a ref for this user?
                        //* DEBUG: */ echo "id={$id},u_id={$u_id},uid={$uid},old={$old},level={$cacheArray['ref_system']['level'][$id]}<br />\n";
-                       if (($u_id == $uid) && (($cacheArray['ref_system']['level'][$id] == 1 && GET_EXT_VERSION("refback") != "") || ($cacheArray['ref_system']['level'][$id] == 0 && GET_EXT_VERSION("refback") == ""))) {
+                       if (($u_id == $uid) && ($cacheArray['ref_system']['level'][$id] == 1)) {
                                //* DEBUG: */ echo "uid matches!<br />\n";
-                               // Entry found!
-                               $cnt = $cacheArray['ref_system']['counter'][$id];
-                               break;
-                       } // END - if
-               } // END - foreach
+                               foreach ($cacheArray['ref_depths']['level'] as $level) {
+                                       if (($level == $cacheArray['ref_system']['level'][$id]) && ($level == 1)) {
+                                               // Level does exist so abort here
+                                               $cnt = $cacheArray['ref_system']['counter'][$id];
+                                               //* DEBUG: */ echo "*".$uid."/".$cnt."*<br />";
+                                               break;
+                                       } elseif ($level > 1) {
+                                               // Not interesting here...
+                                               break;
+                                       }
+                               }
 
+                               // Abort also here!
+                               if ($cnt > 0) break;
+                       }
+               }
                //* DEBUG: */ echo "<PRE>";
                //* DEBUG: */ print_r($cacheArray['ref_system']);
                //* DEBUG: */ echo "</PRE>";
@@ -760,12 +768,12 @@ function RALLYE_GET_REFCOUNT($uid, $old=0) {
 
                if ($cnt > 0) {
                        // Count cache hits
-                       $_CONFIG['cache_hits']++;
+                       if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; }
 
                        // Remove old refs
                        //* DEBUG: */ echo "+".$cnt."/".$old."+<br />";
                        $cnt -= $old;
-               } // END - if
+               }
        } else {
                // Load current refs from database
                $result_ref = SQL_QUERY_ESC("SELECT DISTINCT SUM(s.counter) AS cnt