-<?php\r
-/************************************************************************\r
- * MXChange v0.2.1 Start: 11/10/2004 *\r
- * =============== Last change: 03/18/2005 *\r
- * *\r
- * -------------------------------------------------------------------- *\r
- * File : bonus_functions.php *\r
- * -------------------------------------------------------------------- *\r
- * Short description : Special functions for bonus extension *\r
- * -------------------------------------------------------------------- *\r
- * Kurzbeschreibung : Spezielle Funktion fuer bonus-Erweiterung *\r
- * -------------------------------------------------------------------- *\r
- * *\r
- * -------------------------------------------------------------------- *\r
- * Copyright (c) 2003 - 2008 by Roland Haeder *\r
- * For more information visit: http://www.mxchange.org *\r
- * *\r
- * This program is free software; you can redistribute it and/or modify *\r
- * it under the terms of the GNU General Public License as published by *\r
- * the Free Software Foundation; either version 2 of the License, or *\r
- * (at your option) any later version. *\r
- * *\r
- * This program is distributed in the hope that it will be useful, *\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *\r
- * GNU General Public License for more details. *\r
- * *\r
- * You should have received a copy of the GNU General Public License *\r
- * along with this program; if not, write to the Free Software *\r
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *\r
- * MA 02110-1301 USA *\r
- ************************************************************************/\r
-\r
-// Some security stuff...\r
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))\r
-{\r
- $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";\r
- require($INC);\r
-}\r
-// This function must be run *BEFORE* a link is removed from table 'mxchange_user_links' !\r
-function BONUS_ADD_TURBO_POINTS($mid, $uid, $type)\r
-{\r
- global $CONFIG;\r
-\r
- // Shall we add bonus points?\r
- if ($CONFIG['bonus_active'] == "N") return;\r
-\r
- // Select SQL command\r
- $SQL = "";\r
- switch ($type)\r
- {\r
- case "bonusid":\r
- $result = SQL_QUERY_ESC("SELECT clicks FROM "._MYSQL_PREFIX."_bonus WHERE id=%d LIMIT 1",\r
- array($mid), __FILE__, __LINE__);\r
- $bonus = $mid; $mail = "0";\r
- break;\r
-\r
- case "mailid" :\r
- $result = SQL_QUERY_ESC("SELECT clicks FROM "._MYSQL_PREFIX."_user_stats WHERE id=%d LIMIT 1",\r
- array($mid), __FILE__, __LINE__);\r
- $bonus = "0"; $mail = $mid;\r
- break;\r
- }\r
-\r
- // Load clicks from table as current rank\r
- list($rank) = SQL_FETCHROW($result);\r
-\r
- if ($rank == 1)\r
- {\r
- // First rank!\r
- $rank = 1;\r
- $points = $CONFIG['turbo_bonus'];\r
- }\r
- else\r
- {\r
- // Anything else so let's explode all entered rank points\r
- $test = explode(";", $CONFIG['bonus_rates']);\r
- if (!empty($test[$rank - 2]))\r
- {\r
- // Level found\r
- $points = $test[$rank - 2];\r
- }\r
- else\r
- {\r
- // Level not found!\r
- $points = "0.00000";\r
- }\r
- }\r
-\r
- // Add points to his account directly\r
- $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET turbo_bonus=turbo_bonus+".$points." WHERE userid=%d LIMIT 1",\r
- array(bigintval($uid)), __FILE__, __LINE__);\r
-\r
- // Rember this whole data for displaying ranking list\r
- $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_bonus_turbo (userid, mail_id, bonus_id, level, points, timemark) VALUES ('%s', '%s', '%s', '".$rank."', '".$points."', UNIX_TIMESTAMP())",\r
- array(bigintval($uid), bigintval($mail), bigintval($bonus)), __FILE__, __LINE__);\r
-\r
- if ((GET_EXT_VERSION("bonus") >= "0.3.5") && ($CONFIG['bonus_mode'] != "ADD") && ($points > 0)) BONUS_POINTS_HANDLER($points);\r
-}\r
-//\r
-function BONUS_MAKE_RANK_ROWS($data, $type, $uid)\r
-{\r
- global $CONFIG;\r
- $self = false; $OUT = "";\r
-\r
- // How many ranks do we have?\r
- $ranks = sizeof(explode(";", $CONFIG['bonus_rates'])) + 1;\r
-\r
- // Load current user's data\r
- $result = SQL_QUERY_ESC("SELECT level, points, timemark FROM "._MYSQL_PREFIX."_bonus_turbo WHERE %s=%s AND userid=%d LIMIT 1",\r
- array($type, $data, $uid), __FILE__, __LINE__);\r
- if (SQL_NUMROWS($result) == 1)\r
- {\r
- // Load data\r
- list($rank, $points, $mark) = SQL_FETCHROW($result);\r
-\r
- // Remember all values for later use\r
- $self = true; $points = TRANSLATE_COMMA($points);\r
-\r
- // Transfer data to template\r
- define('__YR_LEVEL' , $rank);\r
- define('__YR_POINTS', $points);\r
- define('__YR_TMARK' , MAKE_DATETIME($mark, "1"));\r
-\r
- // Load template\r
- define('__YOUR_RANKING_LINE', LOAD_TEMPLATE("show_bonus_yr", true));\r
- }\r
-\r
- // Load rankings\r
- $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_bonus_turbo WHERE %s=%s ORDER BY level LIMIT %s",\r
- array($type, $data, $CONFIG['bonus_lines']), __FILE__, __LINE__);\r
- if (SQL_NUMROWS($result) > 0)\r
- {\r
- // Start generating the ranking list\r
- $max = SQL_NUMROWS($result);\r
-\r
- $SW = 2;\r
- for ($rank = 1; $rank <= $max; $rank++)\r
- {\r
- // Load data\r
- $result_users = SQL_QUERY_ESC("SELECT userid, points, timemark FROM "._MYSQL_PREFIX."_bonus_turbo WHERE %s=%s AND level='%s' LIMIT 1",\r
- array($type, $data, $rank), __FILE__, __LINE__);\r
- list($userid, $points, $mark) = SQL_FETCHROW($result_users);\r
-\r
- // Are you one of them?\r
- if (empty($userid))\r
- {\r
- // Nothing found\r
- $userid = "---"; $points = "---";\r
- }\r
- else\r
- {\r
- // Translate comma\r
- $points = TRANSLATE_COMMA($points);\r
- }\r
-\r
- // Output row\r
- $OUT .= "<TR>\r
- <TD class=\"bonus_rank_".$rank." bottom2 switch_sw".$SW."\"> ".$rank.".</TD>\r
- <TD class=\"bonus_rank_".$rank." bottom2 switch_sw".$SW."\" align=\"center\">".$userid."</TD>\r
- <TD class=\"bonus_rank_".$rank." bottom2 switch_sw".$SW."\" align=\"center\">".$points."</TD>\r
-</TR>\n";\r
- $SW = 3 - $SW;\r
- }\r
- if (!$self)\r
- {\r
- // If current user was not found set constant\r
- define('__YOUR_RANKING_LINE', BONUS_RANK_YOU_ARE_NOT_FOUND);\r
- }\r
- }\r
- else\r
- {\r
- // No entries found!\r
- $OUT = "<TR>\r
- <TD colspan=\"3\" align=\"center\" height=\"30\" class=\"bottom2\">\r
- <STRONG class=\"guest_failed\">".BONUS_NO_RANKS_1.$data.BONUS_NO_RANKS_2."</STRONG>\r
- </TD>\r
-</TR>\n";\r
- define('__YOUR_RANKING_LINE', "");\r
- }\r
- return $OUT;\r
-}\r
-//\r
-function BONUS_POINTS_HANDLER($MODE)\r
-{\r
- global $CONFIG;\r
-\r
- // Shall we add bonus points?\r
- if ($CONFIG['bonus_active'] == "N") return;\r
-\r
- // Switch to jackpot-mode when no UID is supplied but userid-mode is selected\r
- if (($CONFIG['bonus_mode'] == "UID") && ($CONFIG['bonus_uid'] == "0")) $CONFIG['bonus_mode'] = "JACKPOT";\r
-\r
- if ($MODE == "login_bonus")\r
- {\r
- // Login bonus detected\r
- $POINTS = $CONFIG['login_bonus'];\r
- }\r
- else\r
- {\r
- // Direct points supplied\r
- $POINTS = $MODE;\r
- }\r
-\r
- // Subtract points from...\r
- switch ($CONFIG['bonus_mode'])\r
- {\r
- case "JACKPOT": // ... jackpot\r
- if ((SUB_JACKPOT($POINTS) == -1) && ($CONFIG['bonus_uid'] > 0))\r
- {\r
- // Check points amount first...\r
- $TOTAL = GET_TOTAL_DATA($CONFIG['bonus_uid'], "user_points", "points") - GET_TOTAL_DATA($CONFIG['bonus_uid'], "user_data", "used_points");\r
- if ($TOTAL >= $POINTS)\r
- {\r
- // Subtract points from userid's account\r
- $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid=%d LIMIT 1",\r
- array(bigintval($POINTS), bigintval($CONFIG['bonus_uid'])), __FILE__, __LINE__);\r
-\r
- // Update mediadata as well\r
- if (GET_EXT_VERSION("mediadata") >= "0.0.4")\r
- {\r
- // Update database\r
- MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $POINTS);\r
- }\r
- }\r
- }\r
- break;\r
-\r
- case "UID": // ... userid's account\r
- // Check his amount first\r
- $TOTAL = GET_TOTAL_DATA($CONFIG['bonus_uid'], "user_points", "points") - GET_TOTAL_DATA($CONFIG['bonus_uid'], "user_data", "used_points");\r
- if ($TOTAL >= $POINTS)\r
- {\r
- // Subtract points from userid's account\r
- $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid=%d LIMIT 1",\r
- array(bigintval($POINTS), bigintval($CONFIG['bonus_uid'])), __FILE__, __LINE__);\r
-\r
- // Update mediadata as well\r
- if (GET_EXT_VERSION("mediadata") >= "0.0.4")\r
- {\r
- // Update database\r
- MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $POINTS);\r
- }\r
- }\r
- else\r
- {\r
- // Try to subtract from jackpot\r
- $DUMMY = SUB_JACKPOT($POINTS);\r
- }\r
- break;\r
- }\r
-}\r
-//\r
-function BONUS_PURGE_EXPIRED_TURBO_BONUS()\r
-{\r
- global $CONFIG;\r
- // Remove entries\r
- $result = SQL_QUERY("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_bonus_turbo WHERE timemark < ".(time() - $CONFIG['bonus_timeout']), __FILE__, __LINE__);\r
- $DELETED = SQL_AFFECTEDROWS($result);\r
- if ($DELETED > 0)\r
- {\r
- // Send out email to admin\r
- if (GET_EXT_VERSION("admins") >= "0.4.1")\r
- {\r
- SEND_ADMIN_EMAILS_PRO(AUTOPURGE_ADMIN_TURBO_SUBJECT, "admin_autopurge_turbo", $DELETED, "");\r
- }\r
- else\r
- {\r
- $msg = LOAD_EMAIL_TEMPLATE("admin_autopurge_turbo", $DELETED, "");\r
- SEND_ADMIN_EMAILS(AUTOPURGE_ADMIN_TURBO_SUBJECT, $msg);\r
- }\r
- }\r
-}\r
-//\r
-?>\r
+<?php
+/************************************************************************
+ * MXChange v0.2.1 Start: 11/10/2004 *
+ * =============== Last change: 03/18/2005 *
+ * *
+ * -------------------------------------------------------------------- *
+ * File : bonus_functions.php *
+ * -------------------------------------------------------------------- *
+ * Short description : Special functions for bonus extension *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung : Spezielle Funktion fuer bonus-Erweiterung *
+ * -------------------------------------------------------------------- *
+ * *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder *
+ * For more information visit: http://www.mxchange.org *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
+ * MA 02110-1301 USA *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+ $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+ require($INC);
+}
+// This function must be run *BEFORE* a link is removed from table 'mxchange_user_links' !
+function BONUS_ADD_TURBO_POINTS($mid, $uid, $type)
+{
+ global $CONFIG;
+
+ // Shall we add bonus points?
+ if ($CONFIG['bonus_active'] == "N") return;
+
+ // Select SQL command
+ $SQL = "";
+ switch ($type)
+ {
+ case "bonusid":
+ $result = SQL_QUERY_ESC("SELECT clicks FROM "._MYSQL_PREFIX."_bonus WHERE id=%d LIMIT 1",
+ array($mid), __FILE__, __LINE__);
+ $bonus = $mid; $mail = "0";
+ break;
+
+ case "mailid" :
+ $result = SQL_QUERY_ESC("SELECT clicks FROM "._MYSQL_PREFIX."_user_stats WHERE id=%d LIMIT 1",
+ array($mid), __FILE__, __LINE__);
+ $bonus = "0"; $mail = $mid;
+ break;
+ }
+
+ // Load clicks from table as current rank
+ list($rank) = SQL_FETCHROW($result);
+
+ if ($rank == 1)
+ {
+ // First rank!
+ $rank = 1;
+ $points = $CONFIG['turbo_bonus'];
+ }
+ else
+ {
+ // Anything else so let's explode all entered rank points
+ $test = explode(";", $CONFIG['bonus_rates']);
+ if (!empty($test[$rank - 2]))
+ {
+ // Level found
+ $points = $test[$rank - 2];
+ }
+ else
+ {
+ // Level not found!
+ $points = "0.00000";
+ }
+ }
+
+ // Add points to his account directly
+ $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET turbo_bonus=turbo_bonus+".$points." WHERE userid=%d LIMIT 1",
+ array(bigintval($uid)), __FILE__, __LINE__);
+
+ // Rember this whole data for displaying ranking list
+ $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_bonus_turbo (userid, mail_id, bonus_id, level, points, timemark) VALUES ('%s', '%s', '%s', '".$rank."', '".$points."', UNIX_TIMESTAMP())",
+ array(bigintval($uid), bigintval($mail), bigintval($bonus)), __FILE__, __LINE__);
+
+ if ((GET_EXT_VERSION("bonus") >= "0.3.5") && ($CONFIG['bonus_mode'] != "ADD") && ($points > 0)) BONUS_POINTS_HANDLER($points);
+}
+//
+function BONUS_MAKE_RANK_ROWS($data, $type, $uid)
+{
+ global $CONFIG;
+ $self = false; $OUT = "";
+
+ // How many ranks do we have?
+ $ranks = sizeof(explode(";", $CONFIG['bonus_rates'])) + 1;
+
+ // Load current user's data
+ $result = SQL_QUERY_ESC("SELECT level, points, timemark FROM "._MYSQL_PREFIX."_bonus_turbo WHERE %s=%s AND userid=%d LIMIT 1",
+ array($type, $data, $uid), __FILE__, __LINE__);
+ if (SQL_NUMROWS($result) == 1)
+ {
+ // Load data
+ list($rank, $points, $mark) = SQL_FETCHROW($result);
+
+ // Remember all values for later use
+ $self = true; $points = TRANSLATE_COMMA($points);
+
+ // Transfer data to template
+ define('__YR_LEVEL' , $rank);
+ define('__YR_POINTS', $points);
+ define('__YR_TMARK' , MAKE_DATETIME($mark, "1"));
+
+ // Load template
+ define('__YOUR_RANKING_LINE', LOAD_TEMPLATE("show_bonus_yr", true));
+ }
+
+ // Load rankings
+ $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_bonus_turbo WHERE %s=%s ORDER BY level LIMIT %s",
+ array($type, $data, $CONFIG['bonus_lines']), __FILE__, __LINE__);
+ if (SQL_NUMROWS($result) > 0)
+ {
+ // Start generating the ranking list
+ $max = SQL_NUMROWS($result);
+
+ $SW = 2;
+ for ($rank = 1; $rank <= $max; $rank++)
+ {
+ // Load data
+ $result_users = SQL_QUERY_ESC("SELECT userid, points, timemark FROM "._MYSQL_PREFIX."_bonus_turbo WHERE %s=%s AND level='%s' LIMIT 1",
+ array($type, $data, $rank), __FILE__, __LINE__);
+ list($userid, $points, $mark) = SQL_FETCHROW($result_users);
+
+ // Are you one of them?
+ if (empty($userid))
+ {
+ // Nothing found
+ $userid = "---"; $points = "---";
+ }
+ else
+ {
+ // Translate comma
+ $points = TRANSLATE_COMMA($points);
+ }
+
+ // Output row
+ $OUT .= "<TR>
+ <TD class=\"bonus_rank_".$rank." bottom2 switch_sw".$SW."\"> ".$rank.".</TD>
+ <TD class=\"bonus_rank_".$rank." bottom2 switch_sw".$SW."\" align=\"center\">".$userid."</TD>
+ <TD class=\"bonus_rank_".$rank." bottom2 switch_sw".$SW."\" align=\"center\">".$points."</TD>
+</TR>\n";
+ $SW = 3 - $SW;
+ }
+ if (!$self)
+ {
+ // If current user was not found set constant
+ define('__YOUR_RANKING_LINE', BONUS_RANK_YOU_ARE_NOT_FOUND);
+ }
+ }
+ else
+ {
+ // No entries found!
+ $OUT = "<TR>
+ <TD colspan=\"3\" align=\"center\" height=\"30\" class=\"bottom2\">
+ <STRONG class=\"guest_failed\">".BONUS_NO_RANKS_1.$data.BONUS_NO_RANKS_2."</STRONG>
+ </TD>
+</TR>\n";
+ define('__YOUR_RANKING_LINE', "");
+ }
+ return $OUT;
+}
+//
+function BONUS_POINTS_HANDLER($MODE)
+{
+ global $CONFIG;
+
+ // Shall we add bonus points?
+ if ($CONFIG['bonus_active'] == "N") return;
+
+ // Switch to jackpot-mode when no UID is supplied but userid-mode is selected
+ if (($CONFIG['bonus_mode'] == "UID") && ($CONFIG['bonus_uid'] == "0")) $CONFIG['bonus_mode'] = "JACKPOT";
+
+ if ($MODE == "login_bonus")
+ {
+ // Login bonus detected
+ $POINTS = $CONFIG['login_bonus'];
+ }
+ else
+ {
+ // Direct points supplied
+ $POINTS = $MODE;
+ }
+
+ // Subtract points from...
+ switch ($CONFIG['bonus_mode'])
+ {
+ case "JACKPOT": // ... jackpot
+ if ((SUB_JACKPOT($POINTS) == -1) && ($CONFIG['bonus_uid'] > 0))
+ {
+ // Check points amount first...
+ $TOTAL = GET_TOTAL_DATA($CONFIG['bonus_uid'], "user_points", "points") - GET_TOTAL_DATA($CONFIG['bonus_uid'], "user_data", "used_points");
+ if ($TOTAL >= $POINTS)
+ {
+ // Subtract points from userid's account
+ $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid=%d LIMIT 1",
+ array(bigintval($POINTS), bigintval($CONFIG['bonus_uid'])), __FILE__, __LINE__);
+
+ // Update mediadata as well
+ if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+ {
+ // Update database
+ MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $POINTS);
+ }
+ }
+ }
+ break;
+
+ case "UID": // ... userid's account
+ // Check his amount first
+ $TOTAL = GET_TOTAL_DATA($CONFIG['bonus_uid'], "user_points", "points") - GET_TOTAL_DATA($CONFIG['bonus_uid'], "user_data", "used_points");
+ if ($TOTAL >= $POINTS)
+ {
+ // Subtract points from userid's account
+ $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid=%d LIMIT 1",
+ array(bigintval($POINTS), bigintval($CONFIG['bonus_uid'])), __FILE__, __LINE__);
+
+ // Update mediadata as well
+ if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+ {
+ // Update database
+ MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $POINTS);
+ }
+ }
+ else
+ {
+ // Try to subtract from jackpot
+ $DUMMY = SUB_JACKPOT($POINTS);
+ }
+ break;
+ }
+}
+//
+function BONUS_PURGE_EXPIRED_TURBO_BONUS()
+{
+ global $CONFIG;
+ // Remove entries
+ $result = SQL_QUERY("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_bonus_turbo WHERE timemark < ".(time() - $CONFIG['bonus_timeout']), __FILE__, __LINE__);
+ $DELETED = SQL_AFFECTEDROWS($result);
+ if ($DELETED > 0)
+ {
+ // Send out email to admin
+ if (GET_EXT_VERSION("admins") >= "0.4.1")
+ {
+ SEND_ADMIN_EMAILS_PRO(AUTOPURGE_ADMIN_TURBO_SUBJECT, "admin_autopurge_turbo", $DELETED, "");
+ }
+ else
+ {
+ $msg = LOAD_EMAIL_TEMPLATE("admin_autopurge_turbo", $DELETED, "");
+ SEND_ADMIN_EMAILS(AUTOPURGE_ADMIN_TURBO_SUBJECT, $msg);
+ }
+ }
+}
+//
+?>