More misc fixes and rewrites (sorry, lame description)
[mailer.git] / inc / libs / rallye_functions.php
index 8587a35e5801c2e033ec41d7d1286d4e677d3f72..998427c95fa76373a82ebf26db773e41c4edca54 100644 (file)
@@ -38,7 +38,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
        require($INC);
 }
 
@@ -53,17 +53,17 @@ function RALLYE_AUTOSTART_RALLYES ($result) {
        SQL_FREERESULT($result);
 
        // Set notified to Y
-       SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_rallye_data` SET notified='Y' WHERE id=%s LIMIT 1",
-               array(bigintval($id)), __FUNCTION__, __LINE__);
+       SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_rallye_data` SET notified='Y' WHERE `id`=%s LIMIT 1",
+       array(bigintval($id)), __FUNCTION__, __LINE__);
 
        // Do a snapshot off all user refs
-       $result_user = SQL_QUERY("SELECT userid FROM `{!_MYSQL_PREFIX!}_user_data` WHERE `status`='CONFIRMED' ORDER BY userid", __FUNCTION__, __LINE__);
+       $result_user = SQL_QUERY("SELECT userid FROM `{!_MYSQL_PREFIX!}_user_data` WHERE `status`='CONFIRMED' ORDER BY `userid` ASC", __FUNCTION__, __LINE__);
 
        // Transfer all neccessary data to the global $DATA array
        $DATA['uid_cnt']    = SQL_NUMROWS($result_user);
-       $DATA['start']      = MAKE_DATETIME($start, "2");
-       $DATA['end']        = MAKE_DATETIME($end  , "2");
-       $DATA['now_t']      = MAKE_DATETIME(time(), "2");
+       $DATA['start']      = generateDateTime($start, '2');
+       $DATA['end']        = generateDateTime($end  , '2');
+       $DATA['now_t']      = generateDateTime(time(), '2');
        $DATA['title']      = $title;
        $DATA['id']         = $id;  // ID for the rallye details link
 
@@ -83,8 +83,8 @@ function RALLYE_AUTOSTART_RALLYES ($result) {
                if (empty($cnt)) $cnt = 0; // Added prevent some unknown troubles... :-?
 
                // Check if line is already included...
-               $result_ref = SQL_QUERY_ESC("SELECT id FROM `{!_MYSQL_PREFIX!}_rallye_users` WHERE rallye_id=%s AND userid=%s LIMIT 1",
-                       array(bigintval($id), bigintval($content['userid'])), __FUNCTION__, __LINE__);
+               $result_ref = SQL_QUERY_ESC("SELECT `id` FROM `{!_MYSQL_PREFIX!}_rallye_users` WHERE rallye_id=%s AND `userid`=%s LIMIT 1",
+               array(bigintval($id), bigintval($content['userid'])), __FUNCTION__, __LINE__);
                if (SQL_NUMROWS($result_ref) == 0) {
                        // Free memory
                        SQL_FREERESULT($result_ref);
@@ -95,7 +95,7 @@ FROM `{!_MYSQL_PREFIX!}_user_points` AS p
 LEFT JOIN `{!_MYSQL_PREFIX!}_user_data` AS d
 ON p.userid=d.userid
 WHERE d.`status`='CONFIRMED' AND d.max_mails > 0 AND d.mails_confirmed >= %s AND p.ref_depth=1 AND p.points > 0 AND d.userid=%s",
-                               array(getConfig('ref_payout'), bigintval($content['userid'])), __FUNCTION__, __LINE__);
+                       array(getConfig('ref_payout'), bigintval($content['userid'])), __FUNCTION__, __LINE__);
                        list($cpoints) = SQL_FETCHROW($result_ref);
                        SQL_FREERESULT($result_ref);
 
@@ -104,7 +104,7 @@ WHERE d.`status`='CONFIRMED' AND d.max_mails > 0 AND d.mails_confirmed >= %s AND
                        // Add info line
                        SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_rallye_users` (rallye_id, userid, refs, curr_points)
 VALUES ('%s','%s','%s','%s')",
-                               array(bigintval($id), bigintval($content['userid']), bigintval($cnt), $cpoints), __FUNCTION__, __LINE__);
+                       array(bigintval($id), bigintval($content['userid']), bigintval($cnt), $cpoints), __FUNCTION__, __LINE__);
                        $un = true;
                } // END - if
 
@@ -112,37 +112,37 @@ VALUES ('%s','%s','%s','%s')",
                $DATA['refs']  = $cnt;
 
                // Shall I notify this member?
-               if (($notify == "Y") && ($un)) {
+               if (($notify == 'Y') && ($un)) {
                        // Load email template and send it to the user
-                       $msg = LOAD_EMAIL_TEMPLATE("member_rallye_notify", array('prices' => $prices), $content['userid']);
-                       SEND_EMAIL($content['userid'], sprintf(getMessage('RALLYE_MEMBER_NOTIFY'), $title), $msg);
+                       $message = LOAD_EMAIL_TEMPLATE("member_rallye_notify", array('prices' => $prices), $content['userid']);
+                       sendEmail($content['userid'], sprintf(getMessage('RALLYE_MEMBER_NOTIFY'), $title), $message);
                } // END - if
        } // END - while
 
        // Choose the right admin template
        $templ = "admin_rallye_no_notify";
-       if ($notify == "Y") $templ = "admin_rallye_notify";
+       if ($notify == 'Y') $templ = "admin_rallye_notify";
 
        // Send email to admin
-       SEND_ADMIN_NOTIFICATION(sprintf(getMessage('RALLYE_ADMIN_NOTIFY'), $title), $templ, $prices, "0");
+       sendAdminNotification(sprintf(getMessage('RALLYE_ADMIN_NOTIFY'), $title), $templ, $prices, '0');
 
        // Free memory
        SQL_FREERESULT($result_user);
 }
 //
-function RALLYE_ADD_PRICES ($rallye, $mode="email") {
+function RALLYE_ADD_PRICES ($rallye, $mode='email') {
        // Output mode
        switch($mode) {
-               case "email": $mode = "\n";     break;
-               case "html" : $mode = "<br />\n"; break;
-       }
+               case 'email': $mode = "\n";     break;
+               case 'html' : $mode = "<br />\n"; break;
+       } // END - switch
 
        // Load prices
        $result_prices = SQL_QUERY("SELECT price_level, points, info FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE rallye_id='".$rallye."' ORDER BY price_level", __FUNCTION__, __LINE__);
        if (SQL_NUMROWS($result_prices) > 0) {
                // Load prices
                if ($mode == "\n") $prices = "{--RALLYE_MEMBER_PRICES_ADDED--}:".$mode."------------------------------".$mode;
-               $prices = "";
+               $prices = '';
                while ($content = SQL_FETCHARRAY($result_prices)) {
                        $prices .= $content['price_level'].getMessage('RALLYE_PRICE').": ";
                        if (!empty($content['info'])) {
@@ -170,8 +170,8 @@ function RALLYE_ADD_PRICES ($rallye, $mode="email") {
 //
 function RALLYE_ADD_TOPUSERS ($rallye, $default=0) {
        // First check how many prices are set
-       $result = SQL_QUERY_ESC("SELECT id FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE rallye_id=%s ORDER BY price_level",
-               array(bigintval($rallye)), __FUNCTION__, __LINE__);
+       $result = SQL_QUERY_ESC("SELECT `id` FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE rallye_id=%s ORDER BY price_level",
+       array(bigintval($rallye)), __FUNCTION__, __LINE__);
        $prices = SQL_NUMROWS($result);
        SQL_FREERESULT($result);
 
@@ -180,7 +180,7 @@ function RALLYE_ADD_TOPUSERS ($rallye, $default=0) {
 LEFT JOIN `{!_MYSQL_PREFIX!}_refsystem` AS r
 ON u.userid=r.userid
 WHERE u.rallye_id=%s AND r.counter > 0 ORDER BY u.refs DESC",
-               array(bigintval($rallye)), __FUNCTION__, __LINE__);
+       array(bigintval($rallye)), __FUNCTION__, __LINE__);
 
        // Load users
        $DATA = array(
@@ -205,30 +205,29 @@ LIMIT 1", array(bigintval($content['userid']), getConfig('ref_payout')), __FUNCT
                if (empty($refpoints)) $refpoints = 0;
 
                // Init userid for list
-               $_uid = "---";
+               $_uid = '---';
                // List only users with at least one ref!
-               //* DEBUG: */ echo "*".$cnt."/".$content['userid']."/".$content['curr_points']."/".$refpoints."*<br />\n";
-               if (($cnt > 0) && ($refpoints > $content['curr_points'])) { $_uid = $content['userid']; } else { $cnt = ""; }
+               //* DEBUG: */ echo "*".$cnt.'/'.$content['userid'].'/'.$content['curr_points'].'/'.$refpoints."*<br />\n";
+               if (($cnt > 0) && ($refpoints > $content['curr_points'])) { $_uid = $content['userid']; } else { $cnt = ''; }
 
                // Save values to array
                $DATA['uid'][]     = $_uid;
                $DATA['ref'][]     = $cnt;
                $DATA['cpoints'][] = $content['curr_points'];
-       }
+       } // END - while
 
        // Free memory
        SQL_FREERESULT($result);
 
        // Sort whole array
-       array_pk_sort($DATA, array("ref", "cpoints"), 0, 1, true);
+       array_pk_sort($DATA, array('ref', 'cpoints'), 0, 1, true);
 
        // Generate table
        $OUT = LOAD_TEMPLATE("guest_rallye_header", true);
        $SW = 2;
-       for ($idx = 0; $idx < $prices; $idx++)
-       {
-               if (empty($DATA['uid'][$idx])) $DATA['uid'][$idx] = "---";
-               if (empty($DATA['ref'][$idx])) $DATA['ref'][$idx] = "---";
+       for ($idx = 0; $idx < $prices; $idx++) {
+               if (empty($DATA['uid'][$idx])) $DATA['uid'][$idx] = '---';
+               if (empty($DATA['ref'][$idx])) $DATA['ref'][$idx] = '---';
                // Add row
                $OUT .= "<tr>
   <td class=\"switch_sw".$SW." bottom2\">&nbsp;&nbsp;".($idx+1).".</td>
@@ -244,7 +243,8 @@ LIMIT 1", array(bigintval($content['userid']), getConfig('ref_payout')), __FUNCT
                $OUT .= "</td>
 </tr>\n";
                $SW = 3 - $SW;
-       }
+       } // END - for
+
        // Add footer
        $OUT .= LOAD_TEMPLATE("guest_rallye_footer", true);
 
@@ -254,20 +254,20 @@ LIMIT 1", array(bigintval($content['userid']), getConfig('ref_payout')), __FUNCT
 // Run this function only when a new member has confirmed his email address!
 function RALLYE_AUTOADD_USER ($uid) {
        global $DATA;
-       $ADD = "";
+       $add = '';
 
        // Updated extension?
-       if (GET_EXT_VERSION("rallye") >= "0.2.0") {
-               $ADD .= ", min_users, min_prices";
+       if (GET_EXT_VERSION('rallye') >= '0.2.0') {
+               $add .= ", min_users, min_prices";
        } // END - if
 
        // Check for an auto-add rallye
-       $result = SQL_QUERY("SELECT id, title, start_time, end_time, send_notify".$ADD." FROM `{!_MYSQL_PREFIX!}_rallye_data` WHERE is_active='Y' AND notified='Y' AND auto_add_new_user='Y' AND expired='N' LIMIT 1", __FUNCTION__, __LINE__);
+       $result = SQL_QUERY("SELECT id, title, start_time, end_time, send_notify".$add." FROM `{!_MYSQL_PREFIX!}_rallye_data` WHERE is_active='Y' AND notified='Y' AND auto_add_new_user='Y' AND expired='N' LIMIT 1", __FUNCTION__, __LINE__);
        if (SQL_NUMROWS($result) == 1) {
                // Init variables
                $min_users = 0; $min_prices = 0;
                // Load data
-               if (GET_EXT_VERSION("rallye") >= "0.2.0") {
+               if (GET_EXT_VERSION('rallye') >= '0.2.0') {
                        list($id, $title, $start, $end, $notify, $min_users, $min_prices) = SQL_FETCHROW($result);
                } else {
                        list($id, $title, $start, $end, $notify) = SQL_FETCHROW($result);
@@ -277,29 +277,29 @@ function RALLYE_AUTOADD_USER ($uid) {
                SQL_FREERESULT($result);
 
                // Check if line is already included...
-               $result = SQL_QUERY_ESC("SELECT id FROM `{!_MYSQL_PREFIX!}_rallye_users` WHERE rallye_id=%s AND userid=%s LIMIT 1",
-                       array(bigintval($id), bigintval($uid)), __FUNCTION__, __LINE__);
+               $result = SQL_QUERY_ESC("SELECT `id` FROM `{!_MYSQL_PREFIX!}_rallye_users` WHERE rallye_id=%s AND `userid`=%s LIMIT 1",
+               array(bigintval($id), bigintval($uid)), __FUNCTION__, __LINE__);
 
                // Is this user added?
                if (SQL_NUMROWS($result) == 0) {
                        // Add userid and his ref count to table
                        SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_rallye_users` (rallye_id, userid, refs)
 VALUES ('%s','%s','0')",
- array(bigintval($id), bigintval($uid)), __FUNCTION__, __LINE__);
-               } else {
-                       // Free memory
-                       SQL_FREERESULT($result);
-               }
                      array(bigintval($id), bigintval($uid)), __FUNCTION__, __LINE__);
+               } // END - if
+
+               // Free memory
+               SQL_FREERESULT($result);
 
-               if ($notify == "Y") {
+               if ($notify == 'Y') {
                        // Transfer all neccessary data to the global $DATA array
-                       $DATA['start'] = MAKE_DATETIME($start, "2");
-                       $DATA['end']   = MAKE_DATETIME($end  , "2");
-                       $DATA['now_t'] = MAKE_DATETIME(time(), "2");
+                       $DATA['start'] = generateDateTime($start, '2');
+                       $DATA['end']   = generateDateTime($end  , '2');
+                       $DATA['now_t'] = generateDateTime(time(), '2');
                        $DATA['title'] = $title;
                        $DATA['id']    = $id;  // ID for the rallye details link
                        $DATA['ref']   = 0;
-                       $DATA['refs']  = GET_TOTAL_DATA($uid, "user_data", "userid", "refid", true);
+                       $DATA['refs']  = GET_TOTAL_DATA($uid, 'user_data', 'userid', "refid", true);
 
                        // Load prices
                        $prices = RALLYE_ADD_PRICES($id);
@@ -309,8 +309,8 @@ VALUES ('%s','%s','0')",
                        $DATA['min_prices'] = RALLYE_DETERMINE_MIN_PRICES($min_prices);
 
                        // Send notification to member
-                       $msg = LOAD_EMAIL_TEMPLATE("member_rallye_notify", array('prices' => $prices), $uid);
-                       SEND_EMAIL($uid, sprintf(getMessage('RALLYE_MEMBER_NOTIFY'), $title), $msg);
+                       $message = LOAD_EMAIL_TEMPLATE("member_rallye_notify", array('prices' => $prices), $uid);
+                       sendEmail($uid, sprintf(getMessage('RALLYE_MEMBER_NOTIFY'), $title), $message);
                } // END - if
        } // END - if
 }
@@ -330,20 +330,24 @@ function RALLYE_EXPIRE_RALLYES ($result) {
        $DATA = array(); $cnt = 0;
        $users = array();
        $DATA['title']  = $title;
-       $DATA['start']  = MAKE_DATETIME($start, "1");
-       $DATA['end']    = MAKE_DATETIME($end  , "1");
-       $DATA['now_t']  = MAKE_DATETIME(time(), "1");
+       $DATA['start']  = generateDateTime($start, '1');
+       $DATA['end']    = generateDateTime($end  , '1');
+       $DATA['now_t']  = generateDateTime(time(), '1');
 
        // Just count...
-       $TOTAL = 0;
+       $total = 0;
        foreach($prices['uid'] as $key => $uid) {
                // Check status
                //   active = 1: account is still confirmed
                //   active = 0: account is deleted or locked
-               $result = SQL_QUERY_ESC("SELECT COUNT(userid) AS active
-FROM `{!_MYSQL_PREFIX!}_user_data`
-WHERE userid=%s AND `status`='CONFIRMED'
-LIMIT 1", array(bigintval($uid)), __FUNCTION__, __LINE__);
+               $result = SQL_QUERY_ESC("SELECT
+       COUNT(`userid`) AS active
+FROM
+       `{!_MYSQL_PREFIX!}_user_data`
+WHERE
+       `userid`=%s AND `status`='CONFIRMED'
+LIMIT 1",
+                       array(bigintval($uid)), __FUNCTION__, __LINE__);
                list($active) = SQL_FETCHROW($result);
                SQL_FREERESULT($result);
 
@@ -351,19 +355,19 @@ LIMIT 1", array(bigintval($uid)), __FUNCTION__, __LINE__);
 
                // 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)) {
-                       $TOTAL++;
+                       $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
-       SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_rallye_data` SET expired='Y' WHERE id=%s LIMIT 1",
-               array(bigintval($id)), __FUNCTION__, __LINE__);
+       SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_rallye_data` SET `expired`='Y' WHERE `id`=%s LIMIT 1",
+       array(bigintval($id)), __FUNCTION__, __LINE__);
 
        // Run array through (by uid is the most important 2nd-level-array)
        foreach($prices['uid'] as $key => $uid) {
@@ -376,41 +380,41 @@ LIMIT 1", array(bigintval($uid)), __FUNCTION__, __LINE__);
                        $DATA['ref']    = $prices['ref'][$key];
 
                        // Default is other
-                       $winnerLevel = "other";
+                       $winnerLevel = 'other';
 
                        // Determine winner level
                        if ($DATA['level'] == 1) {
                                // The winner!
-                               $winnerLevel = "_gold";
+                               $winnerLevel = '_gold';
                        } elseif ($DATA['level'] == 2) {
                                // The vice winner!
-                               $winnerLevel = "_silver";
+                               $winnerLevel = '_silver';
                        } elseif ($DATA['level'] == 3) {
                                // The bronce winner
-                               $winnerLevel = "_bronce";
+                               $winnerLevel = '_bronce';
                        }
 
                        if ($DATA['points'] > 0) {
                                // Add points directly to user's account
-                               ADD_POINTS_REFSYSTEM("rallye_winner" . $winnerLevel, $uid, $DATA['points'], false, "0", false, "direct");
+                               ADD_POINTS_REFSYSTEM_DIRECT('rallye_winner' . $winnerLevel, $uid, $DATA['points']);
                        } // END - if
 
-                       if ($notify == "Y") {
+                       if ($notify == 'Y') {
                                // Prepare infos for the mail template
                                if (!empty($DATA['info'])) {
                                        // Take direct infos
                                        $DATA['infos'] = $DATA['info'];
                                } else {
                                        // Take points
-                                       $DATA['infos'] = $DATA['points']." {!POINTS!}";
+                                       $DATA['infos'] = $DATA['points'] . ' {!POINTS!}';
                                }
 
                                // Add suffix to template name
-                               $template = "member_rallye_expired".$winnerLevel;
+                               $template = 'member_rallye_expired' . $winnerLevel;
 
                                // Load template
-                               $msg = LOAD_EMAIL_TEMPLATE($template, $DATA, $uid);
-                               SEND_EMAIL($uid, sprintf(getMessage('RALLYE_MEMBER_EXPIRED_SUBJ'), $DATA['level']), $msg);
+                               $message = LOAD_EMAIL_TEMPLATE($template, $DATA, $uid);
+                               sendEmail($uid, sprintf(getMessage('RALLYE_MEMBER_EXPIRED_SUBJ'), $DATA['level']), $message);
                        } // END - if
 
                        // Count userid
@@ -421,7 +425,7 @@ LIMIT 1", array(bigintval($uid)), __FUNCTION__, __LINE__);
        } // END - foreach
 
        // Select template depending on notfication is switch on / off
-       if ($notify == "Y") {
+       if ($notify == 'Y') {
                $templ = "admin_rallye_expired";
        } elseif (is_array($users['uid'])) {
                $templ = "admin_rallye_expired_no";
@@ -429,35 +433,31 @@ LIMIT 1", array(bigintval($uid)), __FUNCTION__, __LINE__);
        }
 
        // Send mail to admin
-       SEND_ADMIN_NOTIFICATION(sprintf(getMessage('RALLYE_ADMIN_EXPIRED_SUBJ'), $title), $templ, $cnt, 0);
+       sendAdminNotification(sprintf(getMessage('RALLYE_ADMIN_EXPIRED_SUBJ'), $title), $templ, $cnt, 0);
 
        // Add task
-       SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_task_system` (status, task_type, subject, text, task_created)
-VALUES ('NEW','RALLYE_EXPIRED','{--RALLYE_ADMIN_EXPIRED--}: %s','{--RALLYE_ADMIN_EXPIRED_TEXT--}',UNIX_TIMESTAMP())",
-               array($title), __FUNCTION__, __LINE__);
-
-       // All work done here...
+       createNewTask('{--RALLYE_ADMIN_EXPIRED--}: ' . $title, '{--RALLYE_ADMIN_EXPIRED_TEXT--}', 'RALLYE_EXPIRED');
 }
 
 //
 function RALLYE_LOAD_USER_DATA ($uids_array) {
        // Implode user ids
-       $uid_string = implode(",", $uids_array['uid']);
+       $uid_string = implode(',', $uids_array['uid']);
 
        // Init result string
-       $ret = "";
+       $ret = '';
 
        // Load users
-       $result = SQL_QUERY_ESC("SELECT userid, gender, surname, family, email FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid IN(%s) AND `status`='CONFIRMED' ORDER BY userid LIMIT %s",
+       $result = SQL_QUERY_ESC("SELECT `userid`, `gender`, `surname`, `family`, `email` FROM `{!_MYSQL_PREFIX!}_user_data` WHERE `userid` IN(%s) AND `status`='CONFIRMED' ORDER BY `userid` ASC LIMIT %s",
                array($uid_string, count($uids_array)), __FUNCTION__, __LINE__);
        while ($content = SQL_FETCHARRAY($result)) {
                // Construct the message masked and add it
                $ret .= sprintf("%s %s %s (%s) - %s\n",
-                       TRANSLATE_GENDER($content['gender']),
-                       $content['surname'],
-                       $content['family'],
-                       $content['email'],
-                       $uids_array['poi'][$content['userid']]
+               translateGender($content['gender']),
+               $content['surname'],
+               $content['family'],
+               $content['email'],
+               $uids_array['poi'][$content['userid']]
                );
        } // END - while
 
@@ -476,7 +476,7 @@ function RALLYE_LOAD_PRICES_ARRAY ($rallye) {
 
        // Load prices
        $result = SQL_QUERY_ESC("SELECT price_level, points, info FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE rallye_id=%s ORDER BY price_level",
-               array(bigintval($rallye)), __FUNCTION__, __LINE__);
+       array(bigintval($rallye)), __FUNCTION__, __LINE__);
 
        // Transfer elements
        while ($content = SQL_FETCHARRAY($result)) {
@@ -495,7 +495,7 @@ function RALLYE_LOAD_PRICES_ARRAY ($rallye) {
 //
 function RALLYE_LOAD_USERS_ARRAY ($rallye) {
        // Fix zero points to 0.00000
-       if (getConfig('ref_payout') == "0") setConfigEntry('ref_payout', "0.00000");
+       if (getConfig('ref_payout') == '0') setConfigEntry('ref_payout', "0.00000");
 
        // Init multi array
        $users = array(
@@ -505,8 +505,8 @@ function RALLYE_LOAD_USERS_ARRAY ($rallye) {
        );
 
        // 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)), __FUNCTION__, __LINE__);
+       $result_user = SQL_QUERY_ESC("SELECT userid, refs, curr_points FROM `{!_MYSQL_PREFIX!}_rallye_users` WHERE rallye_id=%s ORDER BY `userid` ASC",
+       array(bigintval($rallye)), __FUNCTION__, __LINE__);
        while ($content = SQL_FETCHARRAY($result_user)) {
                // Load current ref count
                $cnt = RALLYE_GET_REFCOUNT($content['userid'], $content['refs']);
@@ -517,7 +517,7 @@ FROM `{!_MYSQL_PREFIX!}_user_points` AS p
 LEFT JOIN `{!_MYSQL_PREFIX!}_user_data` AS d
 ON p.userid=d.userid
 WHERE d.`status`='CONFIRMED' AND d.max_mails > 0 AND d.mails_confirmed >= %s AND p.ref_depth=1 AND p.points > 0 AND d.userid=%s",
-                       array(getConfig('ref_payout'), bigintval($content['userid'])), __FUNCTION__, __LINE__);
+               array(getConfig('ref_payout'), bigintval($content['userid'])), __FUNCTION__, __LINE__);
                list($refpoints) = SQL_FETCHROW($result_ref);
                SQL_FREERESULT($result_ref);
 
@@ -528,7 +528,7 @@ WHERE d.`status`='CONFIRMED' AND d.max_mails > 0 AND d.mails_confirmed >= %s AND
                $users['uid'][]     = $content['userid'];
                $users['ref'][]     = abs($cnt - $content['refs']);
                $users['cpoints'][] = $refpoints - $content['curr_points'];
-       }
+       } // END - while
 
        // Free memory
        SQL_FREERESULT($result_user);
@@ -544,9 +544,9 @@ WHERE d.`status`='CONFIRMED' AND d.max_mails > 0 AND d.mails_confirmed >= %s AND
                // We only need to check one element in $users, see above while() block
                if (isset($users['uid'][$k])) {
                        $prices['uid'][$k]  = $users['uid'][$k];
-                       if (empty($prices['uid'][$k])) $prices['uid'][$k]  = "---";
+                       if (empty($prices['uid'][$k])) $prices['uid'][$k]  = '---';
                        $prices['ref'][$k] = $users['ref'][$k];
-                       if (empty($prices['ref'][$k])) $prices['ref'][$k] = "---";
+                       if (empty($prices['ref'][$k])) $prices['ref'][$k] = '---';
                        $prices['cpoints'][$k] = $users['cpoints'][$k];
                } // END - if
        } // END - foreach
@@ -558,8 +558,8 @@ WHERE d.`status`='CONFIRMED' AND d.max_mails > 0 AND d.mails_confirmed >= %s AND
 //
 function RALLYE_LIST_WINNERS ($rallye, $default=0) {
        // First check how many prices are set
-       $result_prices = SQL_QUERY_ESC("SELECT id FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE rallye_id=%s ORDER BY price_level",
-        array(bigintval($rallye)), __FUNCTION__, __LINE__);
+       $result_prices = SQL_QUERY_ESC("SELECT `id` FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE `rallye_id`=%s ORDER BY `price_level` ASC",
+               array(bigintval($rallye)), __FUNCTION__, __LINE__);
        $prices = SQL_NUMROWS($result_prices);
        SQL_FREERESULT($result_prices);
 
@@ -567,54 +567,51 @@ function RALLYE_LIST_WINNERS ($rallye, $default=0) {
        $DATA = RALLYE_LOAD_USERS_ARRAY($rallye);
 
        // Generate table
-       $OUT = LOAD_TEMPLATE("guest_rallye_expired_header", true);
+       $OUT = LOAD_TEMPLATE('guest_rallye_expired_header', true);
        $SW = 2;
        for ($idx = 0; $idx < $prices; $idx++) {
                // Check status
                //   active = 1: account is still confirmed
                //   active = 0: account is deleted or locked
-               $result_active = SQL_QUERY_ESC("SELECT COUNT(userid) FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s AND `status`='CONFIRMED' LIMIT 1",
-                array(bigintval($DATA['uid'][$idx])), __FUNCTION__, __LINE__);
-               list($active) = SQL_FETCHROW($result_active);
-               SQL_FREERESULT($result_active);
+               $active = GET_TOTAL_DATA($DATA['uid'][$idx], 'user_data', 'userid', 'userid', true, " AND `status`='CONFIRMED'");
 
-               if (empty($DATA['uid'][$idx])) $DATA['uid'][$idx] = "---";
-               if ((empty($DATA['ref'][$idx])) || ($DATA['ref'][$idx] == 0) || ($active == 0) || ("".round($DATA['cpoints'][$idx])."" == "0") || (empty($DATA['cpoints'][$idx]))) {
+               if (empty($DATA['uid'][$idx])) $DATA['uid'][$idx] = '---';
+               if ((empty($DATA['ref'][$idx])) || ($DATA['ref'][$idx] == 0) || ($active == 0) || ("".round($DATA['cpoints'][$idx])."" == '0') || (empty($DATA['cpoints'][$idx]))) {
                        // Allow valid and active users with at least one ref to get points
-                       $DATA['ref'][$idx]   = "---";
-                       $DATA['uid'][$idx]   = "---";
-               }
+                       $DATA['ref'][$idx]   = '---';
+                       $DATA['uid'][$idx]   = '---';
+               } // END - if
 
                if (!empty($DATA['info'][$idx])) {
                        // Take direct infos
                        $DATA['infos'][$idx] = $DATA['info'][$idx];
                } else {
                        // Take ppints
-                       $DATA['infos'][$idx] = $DATA['points'][$idx]." {!POINTS!}";
+                       $DATA['infos'][$idx] = $DATA['points'][$idx] . ' {!POINTS!}';
                }
 
                // Add row
-               $ADD = "";
+               $add = '';
                $OUT .= "<tr>
-  <td class=\"switch_sw".$SW." bottom2".$ADD."\">&nbsp;&nbsp;".($idx+1).".</td>
-  <td align=\"center\" class=\"switch_sw".$SW." bottom2".$ADD."\">";
+  <td class=\"switch_sw".$SW." bottom2".$add."\">&nbsp;&nbsp;".($idx+1).".</td>
+  <td align=\"center\" class=\"switch_sw".$SW." bottom2".$add."\">";
                if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "<strong>";
                $OUT .= $DATA['uid'][$idx];
                if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "</strong>";
                $OUT .= "</td>
-  <td align=\"center\" class=\"switch_sw".$SW." bottom2".$ADD."\">";
+  <td align=\"center\" class=\"switch_sw".$SW." bottom2".$add."\">";
                if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "<strong>";
                $OUT .= $DATA['ref'][$idx];
                if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "</strong>";
                $OUT .= "</td>
-  <td align=\"center\" class=\"switch_sw".$SW." bottom2".$ADD."\">";
+  <td align=\"center\" class=\"switch_sw".$SW." bottom2".$add."\">";
                if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "<strong>";
                $OUT .= $DATA['infos'][$idx];
                if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "</strong>";
                $OUT .= "</td>
 </tr>\n";
                $SW = 3 - $SW;
-       }
+       } // END - for
 
        // Add footer
        $OUT .= LOAD_TEMPLATE("guest_rallye_expired_footer", true);
@@ -632,7 +629,7 @@ function RALLYE_DELETE_EXPIRED_RALLYES () {
        $result_rallye = SQL_QUERY_ESC("SELECT id, title, start_time, end_time
 FROM `{!_MYSQL_PREFIX!}_rallye_data`
 WHERE end_time <= (UNIX_TIMESTAMP() - %s) AND expired='Y'",
-               array($EXPIRE), __FUNCTION__, __LINE__);
+       array($EXPIRE), __FUNCTION__, __LINE__);
 
        if (SQL_NUMROWS($result_rallye) > 0) {
                // Init SQLs
@@ -642,15 +639,15 @@ WHERE end_time <= (UNIX_TIMESTAMP() - %s) AND expired='Y'",
                while ($content = SQL_FETCHARRAY($result_rallye)) {
                        // Prepare data for mail template
                        $DATA['title']  = $content['title'];
-                       $DATA['start']  = MAKE_DATETIME($content['start_time'], "1");
-                       $DATA['end']    = MAKE_DATETIME($content['end_time']  , "1");
-                       $DATA['now_t']  = MAKE_DATETIME(time(), "1");
+                       $DATA['start']  = generateDateTime($content['start_time'], '1');
+                       $DATA['end']    = generateDateTime($content['end_time']  , '1');
+                       $DATA['now_t']  = generateDateTime(time(), '1');
 
                        // Send mail to admin
-                       SEND_ADMIN_NOTIFICATION(sprintf(getMessage('RALLYE_ADMIN_PURGED_SUBJ'), $content['title']), "admin_rallye_purged", "", 0);
+                       sendAdminNotification(sprintf(getMessage('RALLYE_ADMIN_PURGED_SUBJ'), $content['title']), "admin_rallye_purged", '', 0);
 
                        // Purge whole rallye
-                       ADD_SQL(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_rallye_data` WHERE id=%s LIMIT 1",
+                       ADD_SQL(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_rallye_data` WHERE `id`=%s LIMIT 1",
                                array(bigintval($content['id'])), __FUNCTION__, __LINE__, false));
                        ADD_SQL(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE rallye_id=%s LIMIT 1",
                                array(bigintval($content['id'])), __FUNCTION__, __LINE__, false));
@@ -658,10 +655,7 @@ WHERE end_time <= (UNIX_TIMESTAMP() - %s) AND expired='Y'",
                                array(bigintval($content['id'])), __FUNCTION__, __LINE__, false));
 
                        // Add task
-                       // @TODO Rewrite this to a function
-                       ADD_SQL(SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_task_system` (status, task_type, subject, text, task_created)
-VALUES ('NEW','RALLYE_PURGED','{--RALLYE_ADMIN_PURGED--}: %s','{--RALLYE_ADMIN_PURGED_TEXT--}',UNIX_TIMESTAMP())",
-                               array($content['title']), __FUNCTION__, __LINE__, false));
+                       createNewTask('{--RALLYE_ADMIN_PURGED--}: ' . $content['title'], '{--RALLYE_ADMIN_PURGED_TEXT--}', 'RALLYE_PURGED');
                } // END - while
 
                // Run all SQLs
@@ -673,24 +667,25 @@ VALUES ('NEW','RALLYE_PURGED','{--RALLYE_ADMIN_PURGED--}: %s','{--RALLYE_ADMIN_P
 }
 
 //
-function RALLYE_TEMPLATE_SELECTION ($name="template", $default="") {
+function RALLYE_TEMPLATE_SELECTION ($name = 'template', $default = '') {
+       // Init variables
+       $OUT = '';
+       $ral = array();
+
        // Check templates directory
-       $OUT = ""; $ral = array();
-       $BASE = sprintf("%stemplates/%s/html/rallye/", constant('PATH'), GET_LANGUAGE());
-       $dir = opendir($BASE);
-       while ($read = readdir($dir)) {
-               // If it is no dir (so a file)
-               if (!isDirectory($BASE.$read)) {
-                       // Accept only templates matching with rallye_????.tpl.xx
-                       if (eregi("^rallye_.*\.tpl", $read))
-                       {
-                               $read = substr($read, 7, strpos($read, ".") - 7);
-                               // Accept only template names between 1 and 255 chars length
-                               if ((strlen($read) < 256) && (!empty($read))) $ral[] = $read;
-                       }
-               }
-       }
-       closedir($dir);
+       $basePath = sprintf("templates/%s/html/rallye/", getLanguage());
+
+       // Read the directory
+       $templates = getArrayFromDirectory($basePath, 'rallye_', false, true, array(), '.tpl');
+
+       // And walk through
+       foreach ($templates as $read) {
+               // Cut prefix and extension away
+               $read = substr($read, 7, strpos($read, '.') - 7);
+
+               // Accept only template names between 1 and 255 chars length
+               if ((strlen($read) < 256) && (!empty($read))) $ral[] = $read;
+       } // END - while
 
        // Do we have found templates which we can link with the new rallye?
        if (!empty($ral[0])) {
@@ -699,10 +694,10 @@ function RALLYE_TEMPLATE_SELECTION ($name="template", $default="") {
                $OUT  = "<select name=\"".$name."\" size=\"1\" class=\"admin_select\">
   <option value=\"\">{--SELECT_NONE--}</option>\n";
                foreach ($ral as $rallye) {
-                    $OUT .= "  <option value=\"".$rallye."\"";
-                       if ($default == $rallye) $OUT .= " selected=\"selected\"";
+                       $OUT .= "  <option value=\"".$rallye."\"";
+                       if ($default == $rallye) $OUT .= ' selected="selected"';
                        $OUT .= ">".$rallye."</option>\n";
-               }
+               } // END - foreach
                $OUT .= "</select>\n";
        } else {
                // No rallye templates found
@@ -714,9 +709,9 @@ function RALLYE_TEMPLATE_SELECTION ($name="template", $default="") {
 }
 
 //
-function RALLYE_GET_REFCOUNT ($uid, $old=0) {
+function RALLYE_GET_REFCOUNT ($uid, $old = 0) {
        // Check current refs
-       if (GET_EXT_VERSION("cache") >= "0.1.2") {
+       if (GET_EXT_VERSION('cache') >= '0.1.2') {
                // Get refs from cache
                $cnt = 0;
                foreach ($GLOBALS['cache_array']['refsystem']['userid'] as $id => $uid) {
@@ -728,18 +723,19 @@ function RALLYE_GET_REFCOUNT ($uid, $old=0) {
                                        if (($level == $GLOBALS['cache_array']['refsystem']['level'][$id]) && ($level == 1)) {
                                                // Level does exist so abort here
                                                $cnt = $GLOBALS['cache_array']['refsystem']['counter'][$id];
-                                               //* DEBUG: */ echo "*".$uid."/".$cnt."*<br />";
+                                               //* DEBUG: */ echo "*".$uid.'/'.$cnt."*<br />";
                                                break;
                                        } elseif ($level > 1) {
                                                // Not interesting here...
                                                break;
                                        }
-                               }
+                               } // END - foreach
 
                                // Abort also here!
                                if ($cnt > 0) break;
-                       }
-               }
+                       } // END - if
+               } // END - foreach
+
                //* DEBUG: */ echo "<pre>";
                //* DEBUG: */ print_r($GLOBALS['cache_array']['refsystem']);
                //* DEBUG: */ echo "</pre>";
@@ -750,7 +746,7 @@ function RALLYE_GET_REFCOUNT ($uid, $old=0) {
                        incrementConfigEntry('cache_hits');
 
                        // Remove old refs
-                       //* DEBUG: */ echo "+".$cnt."/".$old."+<br />";
+                       //* DEBUG: */ echo '+'.$cnt.'/'.$old."+<br />";
                        $cnt -= $old;
                } // END - if
        } else {
@@ -770,7 +766,7 @@ WHERE s.userid=%s AND s.level=1", array(bigintval($uid)), __FUNCTION__, __LINE__
        }
 
        // Return count
-       //* DEBUG: */ echo "*".$uid."/".$old."/".$cnt."*<br />";
+       //* DEBUG: */ echo "*".$uid.'/'.$old.'/'.$cnt."*<br />";
        return $cnt;
 }