Fix for missing solved tasks
[mailer.git] / inc / libs / task_functions.php
index 2eca98fd20baa12c5b80023f5dbe6bf681d0da83..f251b7c2784fa06e7ccb254af1a09ffae14059f7 100644 (file)
@@ -50,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>");
@@ -76,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>");
@@ -98,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");
        }
@@ -111,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>");
@@ -124,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>");
@@ -137,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>");
@@ -150,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>");
@@ -164,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>");
@@ -178,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>");
@@ -191,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>");
@@ -204,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>");
@@ -218,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>");
@@ -232,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>");
@@ -255,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>");
@@ -272,19 +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 != ".$_CONFIG['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";
-               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
-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";
@@ -293,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")) {
@@ -336,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") {
@@ -353,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;
@@ -372,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;
@@ -400,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";
@@ -408,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";
@@ -501,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;