SQL fixes for wrong column names.
[mailer.git] / inc / autopurge / purge-mails.php
index 7d5de277833197ad8e314faefe9cc544925a7799..79fbe434ebf88462189903c3c15915bc5f028923 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /************************************************************************
- * MXChange v0.2.1                                    Start: 05/29/2004 *
- * ===============                              Last change: 11/26/2004 *
+ * Mailer v0.2.1-FINAL                                Start: 05/29/2004 *
+ * ===================                          Last change: 11/26/2004 *
  *                                                                      *
  * -------------------------------------------------------------------- *
  * File              : autopurge.php                                    *
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Auto-Loeschung von veralteten Mail-Links         *
  * -------------------------------------------------------------------- *
- *                                                                      *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * Needs to be in all Files and every File needs "svn propset           *
+ * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
- * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009, 2010 by Mailer Developer Team                    *
  * For more information visit: http://www.mxchange.org                  *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
-       require($INC);
+       die();
 } // END - if
 
 // Abort if autopurge is not active or disabled by admin
-if ((!EXT_IS_ACTIVE("autopurge")) || (getConfig('auto_purge_active') != "Y")) {
+if ((!isExtensionActive('autopurge')) || (getConfig('auto_purge_active') != 'Y') || (getConfig('ap_del_mails') != 'Y')) {
        // Abort here
        return false;
 } // END - if
 
-// Search for mails from deleted members?
-if (getConfig('ap_del_mails') == "Y") {
-       // Okay, let's check for them...
-       $since = bigintval(getConfig('ap_dm_timeout'));
-       $result_mails = SQL_QUERY_ESC("SELECT sender\
-FROM `{!_MYSQL_PREFIX!}_pool`
-WHERE data_type='DELETED' AND timestamp <= (UNIX_TIMESTAMP() - %s)
-ORDER BY sender ASC",
-        array($since), __FILE__, __LINE__);
+// Okay, let's check for deleted mails
+$result_mails = SQL_QUERY("SELECT
+       `sender`
+FROM
+       `{?_MYSQL_PREFIX?}_pool`
+WHERE
+       `data_type`='DELETED' AND `timestamp` <= (UNIX_TIMESTAMP() - {?ap_dm_timeout?})
+ORDER BY
+       `sender` ASC", __FILE__, __LINE__);
+
+// Reset counter...
+$deletedStats = '0';
+
+// Do we have "purged" mails?
+if (SQL_NUMROWS($result_mails) > 0) {
+       // Okay, check for their sender's
+       while ($content = SQL_FETCHARRAY($result_mails)) {
+               // Check now...
+               if (!fetchUserData($content['sender'])) {
+                       // Okay we found some mails!
+                       SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_pool` WHERE `sender`=%s",
+                               array(bigintval($content['sender'])), __FILE__, __LINE__);
 
-       // Reset counter...
-       $DELETED = 0;
+                       // Get all affected (deleted) rows
+                       $deletedStats += SQL_AFFECTEDROWS();
 
-       // Do we have "purged" mails?
-       if (SQL_NUMROWS($result_mails) > 0) {
-               // Okay, check for their sender's
-               while (list($sender) = SQL_FETCHROW($result_mails)) {
-                       // Check now...
-                       $fount = SQL_NUMROWS(SQL_QUERY_ESC("SELECT userid FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1",
-                               array(bigintval($sender)), __FILE__, __LINE__));
-                       if ($found == 0) {
-                               // Okay we found some mails!
-                               SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_pool` WHERE sender=%s",
-                                       array(bigintval($sender)), __FILE__, __LINE__);
-                               $DELETED += SQL_AFFECTEDROWS();
+                       // Reset query (to prevent possible errors) ...;
+                       $result_mails = SQL_QUERY("SELECT
+       `sender`
+FROM
+       `{?_MYSQL_PREFIX?}_pool`
+WHERE
+       `data_type`='DELETED' AND timestamp <= (UNIX_TIMESTAMP() - {?ap_dm_timeout?})
+ORDER BY
+       `sender` ASC", __FILE__, __LINE__);
+               } // END - if
+       } // END - while
+} // END - if
 
-                               // Reset query (to prevent possible errors) ...
-                               $since = bigintval(getConfig('ap_dm_timeout'));
-                               $result_mails = SQL_QUERY_ESC("SELECT sender
-FROM `{!_MYSQL_PREFIX!}_pool`
-WHERE data_type='DELETED' AND timestamp <= (UNIX_TIMESTAMP() - %s)
-ORDER BY sender ASC",
-                                       array($since), __FILE__, __LINE__);
-                       }
-               }
-       }
+// Free memory
+SQL_FREERESULT($result_mails);
 
-       // Free memory
-       SQL_FREERESULT($result_mails);
+// Now let's check for stats entries as well;
+$result_mails = SQL_QUERY("SELECT
+       `userid` AS sender
+FROM
+       `{?_MYSQL_PREFIX?}_user_stats`
+WHERE
+       `timestamp_send` <= (UNIX_TIMESTAMP() - {?ap_dm_timeout?})
+ORDER BY
+       `userid` ASC", __FILE__, __LINE__);
 
-       // Now let's check for stats entries as well
-       $since = bigintval(getConfig('ap_dm_timeout'));
-       $result_mails = SQL_QUERY_ESC("SELECT sender
-FROM `{!_MYSQL_PREFIX!}_user_stats`
-WHERE data_type='DELETED' AND timestamp_send <= (UNIX_TIMESTAMP() - %s)
-ORDER BY sender ASC",
-               array($since), __FILE__, __LINE__);
+// Do we have "purged" mails?
+if (SQL_NUMROWS($result_mails) > 0) {
+       // Okay, check for their sender's
+       while ($content = SQL_FETCHARRAY($result_mails)) {
+               // Check now...
+               if (!fetchUserData($content['sender'])) {
+                       // Okay we found some mails!
+                       SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_stats` WHERE `userid`=%s",
+                               array(bigintval($content['userid'])), __FILE__, __LINE__);
 
-       // Do we have "purged" mails?
-       if (SQL_NUMROWS($result_mails) > 0) {
-               // Okay, check for their sender's
-               while (list($sender) = SQL_FETCHROW($result_mails)) {
-                       // Check now...
-                       $found = SQL_NUMROWS(SQL_QUERY_ESC("SELECT userid FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1", array(bigintval($sender)), __FILE__, __LINE__));
-                       if ($found == 0) {
-                               // Okay we found some mails!
-                               SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_user_stats` WHERE sender=%s", array(bigintval($sender)), __FILE__, __LINE__);
-                               $DELETED += SQL_AFFECTEDROWS();
+                       // Get all affected (deleted) rows
+                       $deletedStats += SQL_AFFECTEDROWS();
 
-                               // Reset query (to prevent possible errors) ...
-                               $since = bigintval(getConfig('ap_dm_timeout'));
-                               $result_mails = SQL_QUERY_ESC("SELECT sender
-FROM `{!_MYSQL_PREFIX!}_user_stats`
-WHERE data_type='DELETED' AND timestamp_send <= (UNIX_TIMESTAMP() - %s)
-ORDER BY sender ASC",
-                                       array($since), __FILE__, __LINE__);
-                       }
-               }
-       }
+                       // Reset query (to prevent possible errors) ...
+                       $result_mails = SQL_QUERY("SELECT
+       `userid` AS userid
+FROM
+       `{?_MYSQL_PREFIX?}_user_stats`
+WHERE
+       `timestamp_send` <= (UNIX_TIMESTAMP() - {?ap_dm_timeout?})
+ORDER BY
+       `userid` ASC", __FILE__, __LINE__);
+               } // END - if
+       } // END - while
+} // END - if
 
-       // Free memory
-       SQL_FREERESULT($result_mails);
+// Free memory
+SQL_FREERESULT($result_mails);
 
-       // Do we have deleted mails and the admin want's to receive a notification
-       if (($DELETED > 0) && (getConfig('ap_dm_notify') == "Y")) {
-               // Send out email to admin
-               SEND_ADMIN_NOTIFICATION(AUTOPURGE_ADMIN_DEL_MAILS_SUBJECT, "admin_autopurge_del_mails", $DELETED, "");
-       }
-}
+// Do we have deleted mails and the admin want's to receive a notification
+if (($deletedStats > 0) && (getConfig('ap_dm_notify') == 'Y')) {
+       // Send out email to admin
+       sendAdminNotification(getMessage('AUTOPURGE_ADMIN_DEL_MAILS_SUBJECT'), 'admin_autopurge_del_mails', $deletedStats);
+} // END - if
 
 //
 ?>