Fixed logfile writing in installation phase, .revision is now ignored
[mailer.git] / inc / autopurge / purge-inact.php
index eb72904f371b1ca99a2b0ed9f9d3f0b55bb91bfd..b5d1f914085a8ddb685d90c76e5adff82b0ad916 100644 (file)
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Auto-Loeschung von inaktiven Mitgliedern         *
  * -------------------------------------------------------------------- *
- *                                                                      *
+ * $Revision:: 856                                                    $ *
+ * $Date:: 2009-03-06 20:24:32 +0100 (Fr, 06. Mär 2009)              $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author:: stelzi                                                   $ *
+ * 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                           *
  * For more information visit: http://www.mxchange.org                  *
@@ -38,26 +43,29 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Abort if autopurge is not active or disabled by admin
-if ((!EXT_IS_ACTIVE("autopurge")) || ($_CONFIG['auto_purge_active'] == "N")) {
+if ((!EXT_IS_ACTIVE("autopurge")) || (getConfig('auto_purge_active') != "Y")) {
        // Abort here
        return false;
 } // END - if
 
 // Shall I look for inactive accounts and autopurge inactive accounts?
-if ($_CONFIG['autopurge_inactive'] == "Y") {
+if (getConfig('autopurge_inactive') == "Y") {
+       // Init SQLs
+       INIT_SQLS();
+
        // Ok, let's have a look...
-       $since = bigintval($_CONFIG['ap_inactive_since']);
+       $since = getConfig(('ap_inactive_since'));
 
        // Init exclusion list
        $EXCLUDE_LIST = "";
-       if ($_CONFIG['def_refid'] > 0) {
-               $EXCLUDE_LIST = " AND d.userid != ".$_CONFIG['def_refid'];
+       if (getConfig('def_refid') > 0) {
+               $EXCLUDE_LIST = " AND d.userid != ".getConfig('def_refid');
        } // END - if
 
        // Check for more extensions
-       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 (EXT_IS_ACTIVE("beg"))     $EXCLUDE_LIST .= " AND d.userid != ".getConfig('beg_uid')."";
+       if (EXT_IS_ACTIVE("bonus"))   $EXCLUDE_LIST .= " AND d.userid != ".getConfig('bonus_uid')."";
+       if (EXT_IS_ACTIVE("doubler")) $EXCLUDE_LIST .= " AND d.userid != ".getConfig('doubler_uid')."";
 
        // Check for new holiday extension
        if (GET_EXT_VERSION("holiday") >= "0.1.3") {
@@ -67,39 +75,39 @@ if ($_CONFIG['autopurge_inactive'] == "Y") {
 
        // Check for all accounts
        $result_inactive = SQL_QUERY_ESC("SELECT DISTINCT d.userid, d.email, d.last_online
-FROM "._MYSQL_PREFIX."_user_data AS d
-WHERE d.status='CONFIRMED' AND d.joined < (UNIX_TIMESTAMP() - %s) AND d.last_online < (UNIX_TIMESTAMP() - %s) AND d.ap_notified < (UNIX_TIMESTAMP() - %s)
+FROM `{!_MYSQL_PREFIX!}_user_data` AS d
+WHERE d.`status`='CONFIRMED' AND d.joined < (UNIX_TIMESTAMP() - %s) AND d.last_online < (UNIX_TIMESTAMP() - %s) AND d.ap_notified < (UNIX_TIMESTAMP() - %s)
 ".$EXCLUDE_LIST."
 ORDER BY d.userid", array($since, $since, $since), __FILE__, __LINE__);
 
        if (SQL_NUMROWS($result_inactive) > 0) {
                // Prepare variables and constants...
                $UIDs = "";
-               define('__INACTIVE_SINCE', ($_CONFIG['ap_inactive_since'] / 60 / 60));
-               define('__INACTIVE_TIME' , ($_CONFIG['ap_in_time']  / 60 / 60));
+               define('__INACTIVE_SINCE', (getConfig('ap_inactive_since') / 60 / 60));
+               define('__INACTIVE_TIME' , (getConfig('ap_in_time')  / 60 / 60));
 
                // Mark found accounts as inactive and send an email
-               while(list($uid, $email, $last) = SQL_FETCHROW($result_inactive)) {
+               while ($content = SQL_FETCHARRAY($result_inactive)) {
                        // Remember userids for the admin
-                       $UIDs .= $uid.", ";
+                       $UIDs .= $content['userid'].", ";
 
                        // Get date/time from timestamp
-                       $last = MAKE_DATETIME($last, "0");
+                       $content['last_online'] = MAKE_DATETIME($content['last_online'], "0");
 
                        // Load mail template
-                       $msg = LOAD_EMAIL_TEMPLATE("member_autopurge_inactive", $last, bigintval($uid));
-                       SEND_EMAIL($email, AUTOPURGE_MEMBER_INACTIVE_SUBJECT, $msg);
+                       $msg = LOAD_EMAIL_TEMPLATE("member_autopurge_inactive", $content['last_online'], bigintval($content['userid']));
+                       SEND_EMAIL($content['email'], getMessage('AUTOPURGE_MEMBER_INACTIVE_SUBJECT'), $msg);
 
                        // Update this account
-                       $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET ap_notified=UNIX_TIMESTAMP() WHERE userid=%s LIMIT 1",
-                        array(bigintval($uid)), __FILE__, __LINE__);
+                       ADD_SQL(SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_user_data` SET ap_notified=UNIX_TIMESTAMP() WHERE userid=%s LIMIT 1",
+                               array(bigintval($content['userid'])), __FILE__, __LINE__, false));
                } // END - while
 
                // Remove last comma
                $UIDs = str_replace(", ", "\n", substr($UIDs, 0, -2));
 
                // Send mail notification to admin
-               SEND_ADMIN_NOTIFICATION(AUTOPURGE_ADMIN_INACTIVE_SUBJECT, "admin_autopurge_inactive", $UIDs, "");
+               SEND_ADMIN_NOTIFICATION(getMessage('AUTOPURGE_ADMIN_INACTIVE_SUBJECT'), "admin_autopurge_inactive", $UIDs, "");
        } // END - if
 
        // Free memory
@@ -107,40 +115,43 @@ ORDER BY d.userid", array($since, $since, $since), __FILE__, __LINE__);
 
        // Now let's have a look for inactive accounts we want to delete we newly use the same exclude list
        // here for e.g. excluding holiday users
-       $time = bigintval($_CONFIG['ap_in_time']);
+       $time = getConfig(('ap_in_time'));
        $result_inactive = SQL_QUERY_ESC("SELECT d.userid, d.email, d.last_online
-FROM "._MYSQL_PREFIX."_user_data AS d
-WHERE status='CONFIRMED' AND joined < (UNIX_TIMESTAMP() - %s) AND last_online < (UNIX_TIMESTAMP() - %s) AND ap_notified < (UNIX_TIMESTAMP() - %s)
+FROM `{!_MYSQL_PREFIX!}_user_data` AS d
+WHERE `status`='CONFIRMED' AND joined < (UNIX_TIMESTAMP() - %s) AND last_online < (UNIX_TIMESTAMP() - %s) AND ap_notified < (UNIX_TIMESTAMP() - %s)
 ".$EXCLUDE_LIST."
 ORDER BY userid",
-        array($since, $since, $time), __FILE__, __LINE__);
+               array($since, $since, $time), __FILE__, __LINE__);
        if (SQL_NUMROWS($result_inactive) > 0) {
                // Prepare variable...
                $UIDs = "";
 
                // Delete inactive accounts
-               while (list($uid, $email, $last) = SQL_FETCHROW($result_inactive)) {
+               while ($content = SQL_FETCHARRAY($result_inactive)) {
                        // Remember userids for the admin
-                       $UIDs .= $uid.", ";
+                       $UIDs .= $content['userid'].", ";
 
                        // Get date/time from timestamp
-                       $last = MAKE_DATETIME($last, "0");
+                       $content['last_online'] = MAKE_DATETIME($content['last_online'], "0");
 
                        // Finnaly delete this inactive account
-                       DELETE_USER_ACCOUNT(bigintval($uid), LOAD_EMAIL_TEMPLATE("member_autopurge_delete", $last, ""));
+                       DELETE_USER_ACCOUNT($content['userid'], LOAD_EMAIL_TEMPLATE("member_autopurge_delete", $content['last_online'], ""));
                } // END - while
 
                // Remove last comma
                $UIDs = str_replace(", ", "\n", substr($UIDs, 0, -2));
 
                // Send mail notification to admin
-               if ($_CONFIG['ap_un_mail'] == "Y") {
-                       SEND_ADMIN_NOTIFICATION(AUTOPURGE_ADMIN_DELETE_SUBJECT, "admin_autopurge_delete", $UIDs, "");
+               if (getConfig('ap_in_notify') == "Y") {
+                       SEND_ADMIN_NOTIFICATION(getMessage('AUTOPURGE_ADMIN_DELETE_SUBJECT'), "admin_autopurge_delete", $UIDs, "");
                } // END - if
        } // END - if
 
        // Free memory
        SQL_FREERESULT($result_inactive);
+
+       // Run all SQLs
+       runFilterChain('run_sqls');
 } // END - if
 
 //