X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Flibs%2Frallye_functions.php;h=50881d58eb96dee6d1b3977279978ed8f190b9db;hp=e55876b3eeed4e3fb0b07b07160492c9616509ca;hb=2cce06a4f4ff6bdbf0a14dcf7d2a89944b472c69;hpb=75ad748a68473ace540251427a74fb781b1145e9 diff --git a/inc/libs/rallye_functions.php b/inc/libs/rallye_functions.php index e55876b3ee..50881d58eb 100644 --- a/inc/libs/rallye_functions.php +++ b/inc/libs/rallye_functions.php @@ -32,24 +32,24 @@ ************************************************************************/ // Some security stuff... -if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) -{ +if (!defined('__SECURITY')) { $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php"; require($INC); } + // function RALLYE_AUTOSTART_RALLYES($result) { // Global data array for LOAD_EMAIL_TEMPLATE() $DATA = array(); - global $DATA, $CONFIG; + global $DATA, $_CONFIG; // Load all rallyes (usally we have only one rallye active per time! list($id, $title, $start, $end, $notify, $min_users, $min_prices) = SQL_FETCHROW($result); SQL_FREERESULT($result); // Set notified to Y - $result_notified = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_rallye_data SET notified='Y' WHERE id=%d LIMIT 1", + $result_notified = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_rallye_data SET notified='Y' WHERE id=%s LIMIT 1", array(bigintval($id)), __FILE__, __LINE__); // Do a snapshot off all user refs @@ -94,10 +94,10 @@ function RALLYE_AUTOSTART_RALLYES($result) // Get refs by userid $cnt = RALLYE_GET_REFCOUNT($uid); - if (empty($cnt)) $cnt = "0"; // Added prevent some unknown troubles... :-? + 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=%d AND userid=%d LIMIT 1", + $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($uid)), __FILE__, __LINE__); if (SQL_NUMROWS($result_ref) == 0) { @@ -109,8 +109,8 @@ function RALLYE_AUTOSTART_RALLYES($result) 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=%d", - array($CONFIG['ref_payout'], bigintval($uid)), __FILE__, __LINE__); +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($_CONFIG['ref_payout'], bigintval($uid)), __FILE__, __LINE__); list($cpoints) = SQL_FETCHROW($result_ref); SQL_FREERESULT($result_ref); @@ -135,20 +135,12 @@ VALUES ('%s', '%s', '%s', '%s')", } } - // Send email to admin + // Choose the right admin template $templ = "admin_rallye_no_notify"; if ($notify == "Y") $templ = "admin_rallye_notify"; - if (GET_EXT_VERSION("admins") < "0.4.1") - { - // Use old method to send out - $msg = LOAD_EMAIL_TEMPLATE($templ, $prices, 0); - SEND_ADMIN_EMAILS(RALLYE_ADMIN_NOTIFY.$title, $msg); - } - else - { - // Use new system to send out - SEND_ADMIN_EMAILS_PRO(RALLYE_ADMIN_NOTIFY.$title, $templ, $prices, "0"); - } + + // Send email to admin + SEND_ADMIN_NOTIFICATION(RALLYE_ADMIN_NOTIFY.$title, $templ, $prices, "0"); // Free memory SQL_FREERESULT($result_user); @@ -160,7 +152,7 @@ function RALLYE_ADD_PRICES($rallye,$mode="email") switch($mode) { case "email": $mode = "\n"; break; - case "html" : $mode = "
\n"; break; + case "html" : $mode = "
\n"; break; } // Load prices @@ -201,11 +193,15 @@ function RALLYE_ADD_PRICES($rallye,$mode="email") // function RALLYE_ADD_TOPUSERS($rallye,$default=0) { - global $CONFIG; - $since = (time() - $CONFIG['ap_in_since']); + global $_CONFIG; + // Init variable + $since = 0; + if (EXT_IS_ACTIVE("autopurge")) { + $since = $_CONFIG['ap_inactive_since']; + } // END - if // First check how many prices are set - $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id=%d ORDER BY price_level", + $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id=%s ORDER BY price_level", array(bigintval($rallye)), __FILE__, __LINE__); $prices = SQL_NUMROWS($result); SQL_FREERESULT($result); @@ -214,7 +210,7 @@ function RALLYE_ADD_TOPUSERS($rallye,$default=0) $result = SQL_QUERY_ESC("SELECT DISTINCT u.userid, u.refs, u.curr_points FROM "._MYSQL_PREFIX."_rallye_users AS u LEFT JOIN "._MYSQL_PREFIX."_refsystem AS r ON u.userid=r.userid -WHERE u.rallye_id=%d AND r.counter > 0 ORDER BY u.refs DESC", +WHERE u.rallye_id=%s AND r.counter > 0 ORDER BY u.refs DESC", array(bigintval($rallye)), __FILE__, __LINE__); // Load users @@ -233,12 +229,12 @@ WHERE u.rallye_id=%d AND r.counter > 0 ORDER BY u.refs DESC", $result_ref = SQL_QUERY_ESC("SELECT DISTINCT p.points FROM "._MYSQL_PREFIX."_user_points AS p LEFT JOIN "._MYSQL_PREFIX."_user_data AS d ON p.userid=d.userid -WHERE d.userid=%d AND d.status='CONFIRMED' AND p.ref_depth='1' AND d.max_mails > 0 AND d.mails_confirmed >= %s AND d.last_online >= %s -LIMIT 1", array(bigintval($uid), $CONFIG['ref_payout'], $since), __FILE__, __LINE__); +WHERE d.userid=%s AND d.status='CONFIRMED' AND p.ref_depth=1 AND d.max_mails > 0 AND d.mails_confirmed >= %s AND d.last_online >= (UNIX_TIMESTAMP() - %s) +LIMIT 1", array(bigintval($uid), $_CONFIG['ref_payout'], $since), __FILE__, __LINE__); list($refpoints) = SQL_FETCHROW($result_ref); SQL_FREERESULT($result_ref); - if (empty($refpoints)) $refpoints = "0"; + if (empty($refpoints)) $refpoints = 0; // And subtract start refs $cnt -= $refs; @@ -301,7 +297,7 @@ 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=%d AND userid=%d LIMIT 1", + $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)), __FILE__, __LINE__); if (SQL_NUMROWS($result) == 0) { @@ -324,7 +320,7 @@ VALUES ('%s', '%s', '0')", $DATA['now_t'] = MAKE_DATETIME(time(), "2"); $DATA['title'] = $title; $DATA['id'] = $id; // ID for the rallye details link - $DATA['ref'] = "0"; + $DATA['ref'] = 0; // Load prices $prices = RALLYE_ADD_PRICES($id); @@ -338,10 +334,13 @@ VALUES ('%s', '%s', '0')", // function RALLYE_EXPIRE_RALLYES($result) { - global $DATA, $CONFIG; + global $DATA, $_CONFIG; // Latest online time - $since = (time() - $CONFIG['ap_in_since']); + $since = 0; + if (EXT_IS_ACTIVE("autopurge")) { + $since = $_CONFIG['ap_inactive_since']; + } // END - if // Load rallye data list($id, $title, $start, $end, $notify, $min_users, $min_prices) = SQL_FETCHROW($result); @@ -360,14 +359,14 @@ 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 $result = SQL_QUERY_ESC("SELECT COUNT(userid) AS active FROM "._MYSQL_PREFIX."_user_data -WHERE userid=%d AND status='CONFIRMED' AND last_online >= %s +WHERE userid=%s AND status='CONFIRMED' AND last_online >= (UNIX_TIMESTAMP() - %s) LIMIT 1", array(bigintval($uid), $since), __FILE__, __LINE__); list($active) = SQL_FETCHROW($result); SQL_FREERESULT($result); @@ -388,11 +387,11 @@ LIMIT 1", array(bigintval($uid), $since), __FILE__, __LINE__); } // Expire rallye - $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_rallye_data SET expired='Y' WHERE id=%d LIMIT 1", + $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_rallye_data SET expired='Y' WHERE id=%s LIMIT 1", 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)) @@ -406,7 +405,7 @@ LIMIT 1", array(bigintval($uid), $since), __FILE__, __LINE__); if ($DATA['points'] > 0) { // Add points directly to user's account - $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET points=points+%s WHERE userid=%d AND ref_depth='0' LIMIT 1", + $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET points=points+%s WHERE userid=%s AND ref_depth=0 LIMIT 1", array($DATA['points'], bigintval($uid)), __FILE__, __LINE__); // Update mediadata as well @@ -473,17 +472,7 @@ LIMIT 1", array(bigintval($uid), $since), __FILE__, __LINE__); } // Send mail to admin - if (GET_EXT_VERSION("admins") < "0.4.1") - { - // Use old method to send out - $msg = LOAD_EMAIL_TEMPLATE($templ, $cnt, 0); - SEND_ADMIN_EMAILS(RALLYE_ADMIN_EXPIRED.": ".$title, $msg); - } - else - { - // Use new system to send out - SEND_ADMIN_EMAILS_PRO(RALLYE_ADMIN_EXPIRED.": ".$title, $templ, $cnt, 0); - } + SEND_ADMIN_NOTIFICATION(RALLYE_ADMIN_EXPIRED.": ".$title, $templ, $cnt, 0); // Add task $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (status, task_type, subject, text, task_created) @@ -499,12 +488,12 @@ function RALLYE_LOAD_USER_DATA($uids_array) $uid_string = implode(",", $uids_array['uid']); // Load users - $result = SQL_QUERY_ESC("SELECT userid, sex, 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 LIMIT %s", array($uid_string, count($uids_array)), __FILE__, __LINE__); $ret = ""; - while (list($u, $sex, $surname, $family, $email) = SQL_FETCHROW($result)) + while (list($u, $gender, $surname, $family, $email) = SQL_FETCHROW($result)) { - $ret .= TRANSLATE_SEX($sex)." ".$surname." ".$family." (".$email.") - ".$uids_array['poi'][$u]."\n"; + $ret .= TRANSLATE_GENDER($gender)." ".$surname." ".$family." (".$email.") - ".$uids_array['poi'][$u]."\n"; } // Return result @@ -521,7 +510,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=%d ORDER BY price_level", + $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)), __FILE__, __LINE__); while(list($level, $points, $info) = SQL_FETCHROW($result)) { @@ -539,10 +528,10 @@ function RALLYE_LOAD_PRICES_ARRAY($rallye) // function RALLYE_LOAD_USERS_ARRAY($rallye) { - global $CONFIG; + global $_CONFIG; // Fix zero points to 0.00000 - if ($CONFIG['ref_payout'] == "0") $CONFIG['ref_payout'] = "0.00000"; + if ($_CONFIG['ref_payout'] == "0") $_CONFIG['ref_payout'] = "0.00000"; // Init multi array $users = array( @@ -552,7 +541,7 @@ 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=%d ORDER BY userid", + $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)) { @@ -564,12 +553,12 @@ function RALLYE_LOAD_USERS_ARRAY($rallye) 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=%d", - array($CONFIG['ref_payout'], bigintval($uid)), __FILE__, __LINE__); +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($_CONFIG['ref_payout'], bigintval($uid)), __FILE__, __LINE__); list($refpoints) = SQL_FETCHROW($result_ref); SQL_FREERESULT($result_ref); - if (empty($refpoints)) $refpoints = "0"; + if (empty($refpoints)) $refpoints = 0; // Store calculated new refs to array $users['uid'][] = $uid; @@ -587,7 +576,7 @@ WHERE d.status='CONFIRMED' AND d.max_mails > 0 AND d.mails_confirmed >= %s AND p $prices = RALLYE_LOAD_PRICES_ARRAY($rallye); // Merge users into prices - foreach ($prices['level'] as $k=>$lvl) + foreach ($prices['level'] as $k => $lvl) { $prices['uid'][$k] = $users['uid'][$k]; if (empty($prices['uid'][$k])) $prices['uid'][$k] = "---"; @@ -603,7 +592,7 @@ WHERE d.status='CONFIRMED' AND d.max_mails > 0 AND d.mails_confirmed >= %s AND p 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=%d ORDER BY price_level", + $result_prices = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id=%s ORDER BY price_level", array(bigintval($rallye)), __FILE__, __LINE__); $prices = SQL_NUMROWS($result_prices); SQL_FREERESULT($result_prices); @@ -619,7 +608,7 @@ function RALLYE_LIST_WINNERS($rallye,$default=0) // 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=%d AND status='CONFIRMED' LIMIT 1", + $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])), __FILE__, __LINE__); list($active) = SQL_FETCHROW($result_active); SQL_FREERESULT($result_active); @@ -673,11 +662,13 @@ function RALLYE_LIST_WINNERS($rallye,$default=0) // function RALLYE_DELETE_EXPIRED_RALLYES() { - global $DATA, $CONFIG; + global $DATA, $_CONFIG; // Check for expired rallyes - $EXPIRE = time() - ONE_DAY * 3; // The hard-coded value... - $result_rallye = SQL_QUERY_ESC("SELECT id, title, start_time, end_time FROM "._MYSQL_PREFIX."_rallye_data WHERE end_time <= %s AND expired='Y'", - array($EXPIRE), __FILE__, __LINE__); + $EXPIRE = $_CONFIG['one_day'] * 3; // @TODO The hard-coded value... + $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), __FILE__, __LINE__); if (SQL_NUMROWS($result_rallye) > 0) { @@ -691,24 +682,14 @@ function RALLYE_DELETE_EXPIRED_RALLYES() $DATA['now_t'] = MAKE_DATETIME(time(), "1"); // Send mail to admin - if (GET_EXT_VERSION("admins") < "0.4.1") - { - // Use old method to send out - $msg = LOAD_EMAIL_TEMPLATE("admin_rallye_purged", "", 0); - SEND_ADMIN_EMAILS(RALLYE_ADMIN_PURGED.": ".$title, $msg); - } - else - { - // Use new system to send out - SEND_ADMIN_EMAILS_PRO(RALLYE_ADMIN_PURGED.": ".$title, "admin_rallye_purged", "", 0); - } + SEND_ADMIN_NOTIFICATION(RALLYE_ADMIN_PURGED.": ".$title, "admin_rallye_purged", "", 0); // Purge whole rallye - $result_purge = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_data WHERE id=%d LIMIT 1", + $result_purge = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_data WHERE id=%s LIMIT 1", array(bigintval($id)), __FILE__, __LINE__); - $result_purge = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id=%d LIMIT 1", + $result_purge = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id=%s LIMIT 1", array(bigintval($id)), __FILE__, __LINE__); - $result_purge = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_users WHERE rallye_id=%d LIMIT 1", + $result_purge = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_users WHERE rallye_id=%s LIMIT 1", array(bigintval($id)), __FILE__, __LINE__); } @@ -726,7 +707,7 @@ function RALLYE_TEMPLATE_SELECTION($name="template", $default="") { // Check templates directory $OUT = ""; $ral = array(); - $BASE = PATH."templates/".GET_LANGUAGE()."/html"; + $BASE = sprintf("%stemplates/%s/html", PATH, GET_LANGUAGE()); $dir = opendir($BASE); while ($read = readdir($dir)) { @@ -770,23 +751,23 @@ function RALLYE_TEMPLATE_SELECTION($name="template", $default="") // function RALLYE_GET_REFCOUNT($uid, $old=0) { - global $REF_SYSTEM, $REF_DEPTHS, $CONFIG; + global $_CONFIG, $cacheArray; // Check current refs if (GET_EXT_VERSION("cache") >= "0.1.2") { // Get refs from cache $cnt = 0; - foreach ($REF_SYSTEM['userid'] as $id=>$u_id) + foreach ($cacheArray['ref_system']['userid'] as $id => $u_id) { - if (($u_id == $uid) && ($REF_SYSTEM['level'][$id] == 0)) + if (($u_id == $uid) && ($cacheArray['ref_system']['level'][$id] == 0)) { - foreach ($REF_DEPTHS['level'] as $level) + foreach ($cacheArray['ref_depths']['level'] as $level) { - if (($level == $REF_SYSTEM['level'][$id]) && ($level == 0)) + if (($level == $cacheArray['ref_system']['level'][$id]) && ($level == 0)) { // Level does exist so abort here - $cnt = $REF_SYSTEM['counter'][$id]; - //* DEBUG: */ echo "*".$uid."/".$cnt."*
"; + $cnt = $cacheArray['ref_system']['counter'][$id]; + //* DEBUG: */ echo "*".$uid."/".$cnt."*
"; break; } elseif ($level > 0) @@ -800,17 +781,17 @@ function RALLYE_GET_REFCOUNT($uid, $old=0) } } //* DEBUG: */ echo "
";
-		//* DEBUG: */ print_r($REF_SYSTEM);
+		//* DEBUG: */ print_r($cacheArray['ref_system']);
 		//* DEBUG: */ echo "
"; //* DEBUG: */ die(); if ($cnt > 0) { // Count cache hits - $CONFIG['cache_hits']++; + $_CONFIG['cache_hits']++; // Remove old refs - //* DEBUG: */ echo "+".$cnt."/".$old."+
"; + //* DEBUG: */ echo "+".$cnt."/".$old."+
"; $cnt -= $old; } } @@ -821,12 +802,12 @@ function RALLYE_GET_REFCOUNT($uid, $old=0) FROM "._MYSQL_PREFIX."_refsystem AS s LEFT JOIN "._MYSQL_PREFIX."_refdepths AS d ON s.level=d.level -WHERE s.userid=%d AND s.level=0", array(bigintval($uid)), __FILE__, __LINE__); +WHERE s.userid=%s AND s.level=0", array(bigintval($uid)), __FILE__, __LINE__); list($cnt) = SQL_FETCHROW($result_ref); SQL_FREERESULT($result_ref); if (empty($cnt)) { - $cnt = "0"; + $cnt = 0; } else { @@ -835,7 +816,7 @@ WHERE s.userid=%d AND s.level=0", array(bigintval($uid)), __FILE__, __LINE__); } // Return count - //* DEBUG: */ echo "*".$uid."/".$old."/".$cnt."*
"; + //* DEBUG: */ echo "*".$uid."/".$old."/".$cnt."*
"; return $cnt; } //