Fix for missing solved tasks
[mailer.git] / inc / libs / task_functions.php
index e71856915b9387911a13caa413fdf49d9e104620..f251b7c2784fa06e7ccb254af1a09ffae14059f7 100644 (file)
  ************************************************************************/
 
 // 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);
 }
+
 //
 // The advanced overview shows detailed informations to your exchange script:
 //  - Unconfirmed / locked accounts
@@ -49,18 +50,19 @@ function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
        global $_CONFIG;
 
        // Init variables/arrays
-       $EXTRAS = ""; $OUT = ""; $SQLs = array(); $WHATs = array(); $DESCRs = array(); $TITLEs = array();
+       $EXTRAS = "";
+       $OUT = "";
+       $SQLs = array();
+       $WHATs = array();
+       $DESCRs = array();
+       $TITLEs = array();
 
        // Chheck for new extensions and updates
        $JOBS_DONE = OUTPUT_STANDARD_OVERVIEW($result_main);
 
        if (!$JOBS_DONE) {
                // New extensions or updates found
-               $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE assigned_admin='%s' AND status='NEW' AND task_type='EXTENSION_UPDATE'",
-                array(GET_ADMIN_ID(get_session('admin_login'))), __FILE__, __LINE__);
-
-               $value = SQL_NUMROWS($result);
-               SQL_FREERESULT($result);
+               $value = GET_TOTAL_DATA(GET_ADMIN_ID(get_session('admin_login')), "task_system", "id", "assigned_admin", true, " AND status='NEW' AND task_type='EXTENSION_UPDATE'");
 
                if ($value > 0) {
                        define('__TASK_UPDATE_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_task&amp;type=updates\">".$value."</A>");
@@ -75,20 +77,16 @@ function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
        // First check for all account status seperately
        //
        // Confirmed accounts
-       $result = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED'", __FILE__, __LINE__);
-       $value = SQL_NUMROWS($result);
-       SQL_FREERESULT($result);
+       $value = GET_TOTAL_DATA("CONFIRMED", "user_data", "userid", "status", true);
 
        if ($value > 0) {
-               define('__CONFIRMED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_user&amp;mode=confirmed\">".$value."</A>");
+               define('__CONFIRMED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_user&amp;status=confirmed\">".$value."</A>");
        } else {
                define('__CONFIRMED_VALUE', "0");
        }
 
        // Unconfirmed accounts
-       $result = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status='UNCONFIRMED'", __FILE__, __LINE__);
-       $value = SQL_NUMROWS($result);
-       SQL_FREERESULT($result);
+       $value = GET_TOTAL_DATA("UNCONFIRMED", "user_data", "userid", "status", true);
 
        if ($value > 0) {
                define('__UNCONFIRMED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=chk_regs\">".$value."</A>");
@@ -97,12 +95,10 @@ function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
        }
 
        // And locked accounts
-       $result = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status='LOCKED'", __FILE__, __LINE__);
-       $value = SQL_NUMROWS($result);
-       SQL_FREERESULT($result);
+       $value = GET_TOTAL_DATA("LOCKED", "user_data", "userid", "status", true);
 
        if ($value > 0) {
-               define('__LOCKED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_user&amp;mode=locked\">".$value."</A>");
+               define('__LOCKED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_user&amp;status=locked\">".$value."</A>");
        } else {
                define('__LOCKED_VALUE', "0");
        }
@@ -110,9 +106,7 @@ function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
        //
        // Unassigned tasks
        //
-       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE assigned_admin='0' AND status != 'DELETED'", __FILE__, __LINE__);
-       $value = SQL_NUMROWS($result);
-       SQL_FREERESULT($result);
+       $value = GET_TOTAL_DATA("0", "task_system", "id", "assigned_admin", true, " AND `status` != 'DELETED'");
 
        if ($value > 0) {
                define('__TASK_NEW_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_task&amp;type=unassigned\">".$value."</A>");
@@ -123,9 +117,7 @@ function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
        //
        // Closed tasks
        //
-       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE status = 'CLOSED'", __FILE__, __LINE__);
-       $value = SQL_NUMROWS($result);
-       SQL_FREERESULT($result);
+       $value = GET_TOTAL_DATA("CLOSED", "task_system", "id", "status", true);
 
        if ($value > 0) {
                define('__TASK_CLOSED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_task&amp;type=closed\">".$value."</A>");
@@ -136,9 +128,7 @@ function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
        //
        // Deleted tasks
        //
-       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE status = 'DELETED'", __FILE__, __LINE__);
-       $value = SQL_NUMROWS($result);
-       SQL_FREERESULT($result);
+       $value = GET_TOTAL_DATA("DELETED", "task_system", "id", "status", true);
 
        if ($value > 0) {
                define('__TASK_DELETED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_task&amp;type=deleted\">".$value."</A>");
@@ -149,10 +139,7 @@ function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
        //
        // Solved tasks
        //
-       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE status = 'SOLVED' AND assigned_admin='%s'",
-        array(GET_ADMIN_ID(get_session('admin_login'))), __FILE__, __LINE__);
-       $value = SQL_NUMROWS($result);
-       SQL_FREERESULT($result);
+       $value = GET_TOTAL_DATA("SOLVED", "task_system", "id", "status", true, sprintf(" AND assigned_admin=%s", GET_ADMIN_ID(get_session('admin_login'))));
 
        if ($value > 0) {
                define('__TASK_SOLVED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_task&amp;type=solved\">".$value."</A>");
@@ -163,10 +150,7 @@ function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
        //
        // Your tasks
        //
-       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE assigned_admin='%s' AND status = 'NEW' AND task_type != 'EXTENSION_UPDATE'",
-        array(GET_ADMIN_ID(get_session('admin_login'))), __FILE__, __LINE__);
-       $value = SQL_NUMROWS($result);
-       SQL_FREERESULT($result);
+       $value = GET_TOTAL_DATA(GET_ADMIN_ID(get_session('admin_login')), "task_system", "id", "assigned_admin", true, " AND status = 'NEW' AND task_type != 'EXTENSION_UPDATE'");
 
        if ($value > 0) {
                define('__TASK_YOUR_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_task\">".$value."</A>");
@@ -177,9 +161,7 @@ function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
        //
        // Mails waiting to be approved
        //
-       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_pool WHERE data_type='ADMIN'", __FILE__, __LINE__);
-       $value = SQL_NUMROWS($result);
-       SQL_FREERESULT($result);
+       $value = GET_TOTAL_DATA("ADMIN", "pool", "id", "data_type", true);
 
        if ($value > 0) {
                define('__MAIL_ADMIN_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=unlock_emails\">".$value."</A>");
@@ -190,9 +172,7 @@ function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
        //
        // Unfinished mail orders
        //
-       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_pool WHERE data_type='TEMP'", __FILE__, __LINE__);
-       $value = SQL_NUMROWS($result);
-       SQL_FREERESULT($result);
+       $value = GET_TOTAL_DATA("TEMP", "pool", "id", "data_type", true);
 
        if ($value > 0) {
                define('__MAIL_TEMP_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=email_details\">".$value."</A>");
@@ -203,9 +183,7 @@ function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
        //
        // Sent mail orders
        //
-       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_pool WHERE data_type='SEND'", __FILE__, __LINE__);
-       $value = SQL_NUMROWS($result);
-       SQL_FREERESULT($result);
+       $value = GET_TOTAL_DATA("SEND", "pool", "id", "data_type", true);
 
        if ($value > 0) {
                define('__MAIL_SEND_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=email_archiv\">".$value."</A>");
@@ -217,9 +195,8 @@ function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
        // Autopurged mails
        //
        if (EXT_IS_ACTIVE("autopurge")) {
-               $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_pool WHERE data_type='DELETED'", __FILE__, __LINE__);
-               $value = SQL_NUMROWS($result);
-               SQL_FREERESULT($result);
+               // Get auto-purged mails
+               $value = GET_TOTAL_DATA("DELETED", "pool", "id", "data_type", true);
 
                if ($value > 0) {
                        define('__MAIL_DELETED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=email_details\">".$value."</A>");
@@ -231,9 +208,8 @@ function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
                // Autopurged bonus mails
                //
                if (GET_EXT_VERSION("bonus") >= "0.1.8") {
-                       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_bonus WHERE data_type='DELETED'", __FILE__, __LINE__);
-                       $value = SQL_NUMROWS($result);
-                       SQL_FREERESULT($result);
+                       // Get auto-purged bonus mails
+                       $value = GET_TOTAL_DATA("DELETED", "bonus", "id", "data_type", true);
 
                        if ($value > 0) {
                                define('__MAIL_BONUS_AP_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=email_details\">".$value."</A>");
@@ -254,9 +230,8 @@ function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
        // Sent bonus mails
        //
        if (GET_EXT_VERSION("bonus") >= "0.1.8") {
-               $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_bonus WHERE data_type='SEND'", __FILE__, __LINE__);
-               $value = SQL_NUMROWS($result);
-               SQL_FREERESULT($result);
+               // Get sent bonus mails (but not notifications)
+               $value = GET_TOTAL_DATA("SEND", "bonus", "id", "data_type", true, " AND is_notify='N'");
 
                if ($value > 0) {
                        define('__MAIL_BONUS_SEND_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=email_details\">".$value."</A>");
@@ -271,23 +246,22 @@ function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
 
        if (EXT_IS_ACTIVE("autopurge")) {
                // Start finding them...
-               $since = (time() - $_CONFIG['ap_in_since']);
-               $EXCLUDE_LIST = " AND d.userid != c.def_refid";
+               $since = $_CONFIG['ap_inactive_since'];
+               $EXCLUDE_LIST = "";
+               if ($_CONFIG['def_refid'] > 0) {
+                       $EXCLUDE_LIST = " AND d.userid != ".$_CONFIG['def_refid']."";
+               } // END - if
 
                // Check for more extensions
-               if (EXT_IS_ACTIVE("beg"))     $EXCLUDE_LIST .= " AND d.userid != c.beg_uid";
-               if (EXT_IS_ACTIVE("bonus"))   $EXCLUDE_LIST .= " AND d.userid != c.bonus_uid";
-               if (EXT_IS_ACTIVE("doubler")) $EXCLUDE_LIST .= " AND d.userid != c.doubler_uid";
-
-               // Check for new holiday system
-               if (GET_EXT_VERSION("holiday") >= "0.1.3") {
-                       $EXCLUDE_LIST .= " AND d.holiday_active = 'N'";
-               }
+               if (EXT_IS_ACTIVE("beg"))                  $EXCLUDE_LIST .= " AND d.userid != ".$_CONFIG['beg_uid']."";
+               if (EXT_IS_ACTIVE("bonus"))                $EXCLUDE_LIST .= " AND d.userid != ".$_CONFIG['bonus_uid']."";
+               if (EXT_IS_ACTIVE("doubler"))              $EXCLUDE_LIST .= " AND d.userid != ".$_CONFIG['doubler_uid']."";
+               if (GET_EXT_VERSION("holiday") >= "0.1.3") $EXCLUDE_LIST .= " AND d.holiday_active='N'";
 
                // Check for all accounts
                $SQLs[] = "SELECT DISTINCT d.userid, d.email, d.last_online
-FROM "._MYSQL_PREFIX."_user_data AS d, "._MYSQL_PREFIX."_config AS c
-WHERE d.status='CONFIRMED' AND d.joined < ".$since." AND d.last_online < ".$since." AND d.ap_notified < ".$since."
+FROM `"._MYSQL_PREFIX."_user_data` AS d
+WHERE d.status='CONFIRMED' AND d.joined < (UNIX_TIMESTAMP() - ".$since.") AND d.last_online < (UNIX_TIMESTAMP() - ".$since.") AND d.ap_notified < (UNIX_TIMESTAMP() - ".$since.")
 ".$EXCLUDE_LIST."
 ORDER BY d.userid";
                $WHATs[]  = "list_autopurge";
@@ -296,11 +270,11 @@ ORDER BY d.userid";
        }
 
        if (GET_EXT_VERSION("sql_patches") >= "0.3.4") {
-               // Check for accounts without referral
-               $SQLs[]   = "SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE refid='0' ORDER BY userid";
+               // Check for accounts without referal
+               $SQLs[]   = "SELECT userid FROM `"._MYSQL_PREFIX."_user_data` WHERE refid='0' ORDER BY userid";
                $DESCRs[] = TASK_ADMIN_LIST_ACCOUNT_NOREF;
                $TITLEs[] = TASK_ADMIN_LIST_ACCOUNT_NOREF_TITLE;
-               $WHATs[]  = "list_norefs";
+               $WHATs[]  = "list_user&amp;mode=norefs";
        }
 
        if (EXT_IS_ACTIVE("payout")) {
@@ -339,6 +313,14 @@ ORDER BY d.userid";
                $TITLEs[] = TASK_ADMIN_LIST_HOLIDAYS_TITLE;
        }
 
+       if (GET_EXT_VERSION("bonus") >= "0.8.7") {
+               // List all notifications
+               $SQLs[]   = "SELECT id FROM "._MYSQL_PREFIX."_bonus WHERE is_notify='Y' ORDER BY timestamp DESC";
+               $WHATs[]  = "list_notifications";
+               $DESCRs[] = TASK_ADMIN_LIST_NOTIFICATIONS;
+               $TITLEs[] = TASK_ADMIN_LIST_NOTIFICATIONS_TITLE;
+       } // END - if
+
        if (GET_EXT_VERSION("bonus") >= "0.2.3") {
                // Active rallye
                if (GET_EXT_VERSION("bonus") >= "0.6.9") {
@@ -356,16 +338,16 @@ ORDER BY d.userid";
                }
 
                // Autopurge installed?
-               $LAST = ""; $ONLINE = "";
-               if ((EXT_IS_ACTIVE("autopurge")) && ($_CONFIG['ap_inactive'] == "Y") && ($_CONFIG['ap_in_since'] > 0)) {
+               $LAST = "";
+               if ((EXT_IS_ACTIVE("autopurge")) && ($_CONFIG['autopurge_inactive'] == "Y") && ($_CONFIG['ap_inactive_since'] > 0)) {
                        // Use last online timestamp to keep inactive members away from here
-                       $LAST   = " AND last_online >= ";
-                       $ONLINE = bigintval(time() - $_CONFIG['ap_in_since']);
+                       $LAST   = sprintf(" AND last_online >= (UNIX_TIMESTAMP() - %s)", $_CONFIG['ap_inactive_since']);
                }
 
-               $SQLs[]   = "SELECT ".$USE." AS active_bonus FROM "._MYSQL_PREFIX."_user_data
-WHERE status='CONFIRMED' AND ".$USE.">0".$LAST."".$ONLINE."
-ORDER BY active_bonus DESC, userid";
+               $SQLs[]   = "SELECT ".$USE." AS points
+FROM "._MYSQL_PREFIX."_user_data
+WHERE status='CONFIRMED' AND ".$USE.">0".$LAST."
+ORDER BY points DESC, userid";
                $WHATs[]  = "list_bonus";
                $DESCRs[] = TASK_ADMIN_LIST_BONUS;
                $TITLEs[] = TASK_ADMIN_LIST_BONUS_TITLE;
@@ -375,15 +357,14 @@ ORDER BY active_bonus DESC, userid";
                // Begging rallye
 
                // Autopurge installed?
-               $LAST = ""; $ONLINE = "";
-               if ((EXT_IS_ACTIVE("autopurge")) && ($_CONFIG['ap_inactive'] == "Y") && ($_CONFIG['ap_in_since'] > 0)) {
+               $LAST = "";
+               if ((EXT_IS_ACTIVE("autopurge")) && ($_CONFIG['autopurge_inactive'] == "Y") && ($_CONFIG['ap_inactive_since'] > 0)) {
                        // Use last online timestamp to keep inactive members away from here
-                       $LAST   = " AND last_online >= ";
-                       $ONLINE = bigintval(time() - $_CONFIG['ap_in_since']);
+                       $LAST   = sprintf(" AND last_online >= (UNIX_TIMESTAMP() - %s)", $_CONFIG['ap_inactive_since']);
                }
 
                $SQLs[]   = "SELECT userid FROM "._MYSQL_PREFIX."_user_data
-WHERE status='CONFIRMED' AND beg_points>0".$LAST."".$ONLINE."
+WHERE status='CONFIRMED' AND beg_points>0".$LAST."
 ORDER BY beg_points DESC, userid";
                $WHATs[]  = "list_beg";
                $DESCRs[] = TASK_ADMIN_LIST_BEG;
@@ -403,7 +384,7 @@ ORDER BY beg_points DESC, userid";
        }
 
        //
-       // All referral banner
+       // All referal banner
        //
        $SQLs[] = "SELECT id FROM "._MYSQL_PREFIX."_refbanner ORDER BY id";
        $WHATs[] = "refbanner";
@@ -411,7 +392,7 @@ ORDER BY beg_points DESC, userid";
        $TITLEs[] = TASK_ADMIN_LIST_REFBANNER_ALL_TITLE;
 
        //
-       // All activated referral banner
+       // All activated referal banner
        //
        $SQLs[] = "SELECT id FROM "._MYSQL_PREFIX."_refbanner WHERE visible='Y' ORDER BY id";
        $WHATs[] = "refbanner";
@@ -504,13 +485,13 @@ ORDER BY beg_points DESC, userid";
 
        if (EXT_IS_ACTIVE("theme")) {
                // List all themes
-               $SQLs[]   = "SELECT id FROM "._MYSQL_PREFIX."_themes ORDER BY id";
+               $SQLs[]   = "SELECT id FROM `"._MYSQL_PREFIX."_themes` ORDER BY id";
                $WHATs[]  = "theme_edit";
                $DESCRs[] = TASK_ADMIN_LIST_THEME_ALL;
                $TITLEs[] = TASK_ADMIN_LIST_THEME_ALL_TITLE;
 
                // List active themes
-               $SQLs[]   = "SELECT id FROM "._MYSQL_PREFIX."_themes WHERE theme_active='Y' ORDER BY id";
+               $SQLs[]   = "SELECT id FROM `"._MYSQL_PREFIX."_themes` WHERE theme_active='Y' ORDER BY id";
                $WHATs[]  = "theme_edit";
                $DESCRs[] = TASK_ADMIN_LIST_THEME_ACTIVE;
                $TITLEs[] = TASK_ADMIN_LIST_THEME_ACTIVE_TITLE;
@@ -555,10 +536,14 @@ ORDER BY beg_points DESC, userid";
 function TASK_CREATE_EXTRA_ROWS($SQLs, $WHATs, $DESCRs, $TITLEs){
        // Init
        $OUT = ""; $SW = 2; $MAX = sizeof($SQLs) - 1;
-       foreach ($SQLs as $key=>$sql) {
+       foreach ($SQLs as $key => $sql) {
                // Run SQL command, get line numbers and free memory
                $result = SQL_QUERY($sql, __FILE__, __LINE__);
+
+               // Get rows
                $value = SQL_NUMROWS($result);
+
+               // Free result
                SQL_FREERESULT($result);
 
                $content = array(
@@ -572,7 +557,7 @@ function TASK_CREATE_EXTRA_ROWS($SQLs, $WHATs, $DESCRs, $TITLEs){
                        if (empty($TITLEs[$key])) $TITLEs[$key] = TASK_ADMIN_UNKNOWN_LIST_TITLE;
                        $content['row_link'] = "<A href=\"".URL."/modules.php?module=admin&amp;what=".$WHATs[$key]."\" title=\"".$TITLEs[$key]."\">".$value."</A>";
                } else {
-                       $content['row_link'] = "0";
+                       $content['row_link'] = 0;
                }
 
                // Switch color
@@ -580,7 +565,7 @@ function TASK_CREATE_EXTRA_ROWS($SQLs, $WHATs, $DESCRs, $TITLEs){
 
                // And insert the final string into extras template
                $OUT .= LOAD_TEMPLATE("admin_overview_task_rows", true, $content);
-       }
+       } // END - if
 
        // Return output
        return LOAD_TEMPLATE("admin_overview_task_extras", true, $OUT);