Extension ext-coupon continued, a lot improvements applied:
[mailer.git] / inc / autopurge / purge-mails.php
index 5741d36d2032c81a316543534454de481347a98d..61f911bdfaeebb8b3a89ce03ac01d6c55f60ed8b 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                                    *
  * $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 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
  * For more information visit: http://www.mxchange.org                  *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -42,100 +41,99 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Abort if autopurge is not active or disabled by admin
-if ((!isExtensionActive('autopurge')) || (getConfig('auto_purge_active') != 'Y')) {
+if ((!isExtensionActive('autopurge')) || (!isAutoPurgingActive()) || (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...
-       $result_mails = SQL_QUERY("SELECT
+// 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?})
+       `data_type`='DELETED' AND
+       (UNIX_TIMESTAMP() - `timestamp`) >= {?ap_dm_timeout?}
 ORDER BY
        `sender` ASC", __FILE__, __LINE__);
 
-       // Reset counter...
-       $DELETED = 0;
+// 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...
-                       $fount = SQL_NUMROWS(SQL_QUERY_ESC("SELECT userid FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1",
-                       array(bigintval($content['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($content['sender'])), __FILE__, __LINE__);
-                               $DELETED += SQL_AFFECTEDROWS();
+// Do we have "purged" mails?
+if (!SQL_HASZERONUMS($result_mails)) {
+       // 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 query (to prevent possible errors) ...;
-                               $result_mails = SQL_QUERY("SELECT
+                       // Get all affected (deleted) rows
+                       $deletedStats += 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?})
+       `data_type`='DELETED' AND
+       (UNIX_TIMESTAMP() - `timestamp`) >= {?ap_dm_timeout?}
 ORDER BY
        `sender` ASC", __FILE__, __LINE__);
-                       }
-               }
-       }
+               } // END - if
+       } // END - while
+} // END - if
 
-       // 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
+// Now let's check for stats entries as well;
+$result_mails = SQL_QUERY("SELECT
+       `userid` AS `sender`
 FROM
        `{?_MYSQL_PREFIX?}_user_stats`
 WHERE
-       `data_type`='DELETED' AND `timestamp_send` <= (UNIX_TIMESTAMP() - {?ap_dm_timeout?})
+       (UNIX_TIMESTAMP() - `timestamp_send`) >= {?ap_dm_timeout?}
 ORDER BY
-       `sender` ASC", __FILE__, __LINE__);
+       `userid` ASC", __FILE__, __LINE__);
+
+// Do we have "purged" mails?
+if (!SQL_HASZERONUMS($result_mails)) {
+       // 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['sender'])), __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...
-                       $found = SQL_NUMROWS(SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1",
-                               array(bigintval($content['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($content['sender'])), __FILE__, __LINE__);
-                               $DELETED += SQL_AFFECTEDROWS();
+                       // Get all affected (deleted) rows
+                       $deletedStats += SQL_AFFECTEDROWS();
 
-                               // Reset query (to prevent possible errors) ...
-                               $result_mails = SQL_QUERY("SELECT
-       `userid` AS sender
+                       // Reset query (to prevent possible errors) ...
+                       $result_mails = SQL_QUERY("SELECT
+       `userid` AS `sender`
 FROM
        `{?_MYSQL_PREFIX?}_user_stats`
 WHERE
-       `data_type`='DELETED' AND timestamp_send <= (UNIX_TIMESTAMP() - {?ap_dm_timeout?})
+       (UNIX_TIMESTAMP() - `timestamp_send`) >= {?ap_dm_timeout?}
 ORDER BY
-       `sender` ASC", __FILE__, __LINE__);
-                       }
-               }
-       }
+       `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
-               sendAdminNotification(getMessage('AUTOPURGE_ADMIN_DEL_MAILS_SUBJECT'), 'admin_autopurge_del_mails', $DELETED, '');
-       } // END - if
-}
+// 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('{--ADMIN_AUTOPURGE_DELETE_MAILS_SUBJECT--}', 'admin_autopurge_del_mails', $deletedStats);
+} // END - if
 
-//
+// [EOF]
 ?>