X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=inc%2Fpurge%2Fpurge-inact.php;h=9c38a4b79e23c48554dd896f2314edb558229903;hb=4f7df133f736da124e6f7bd02008b9093f736451;hp=5cf054fc1053aae204348ceddd63fe6f4ee3029d;hpb=596c8ab32594401ca84abfbfe35513ddfff31bec;p=mailer.git diff --git a/inc/purge/purge-inact.php b/inc/purge/purge-inact.php index 5cf054fc10..9c38a4b79e 100644 --- a/inc/purge/purge-inact.php +++ b/inc/purge/purge-inact.php @@ -51,20 +51,18 @@ if (isAutopurgeInactiveEnabled()) { // Init SQLs initSqls(); - // Init exclusion list - // @TODO Rewrite these if() blocks to a filter - $excludeUserids = ''; - if (isValidUserId(getDefRefid())) $excludeUserids .= ' AND `userid` != {?def_refid?}'; - - // Check for more extensions - if (isExtensionActive('beg')) $excludeUserids .= ' AND `userid` != {?beg_userid?}'; - if (isExtensionActive('bonus')) $excludeUserids .= ' AND `userid` != {?bonus_userid?}'; - if (isExtensionActive('doubler')) $excludeUserids .= ' AND `userid` != {?doubler_userid?}'; + // Init userid exclusion + $excludeSql = ''; + $excludedUserids = runFilterChain('config_userid_exclusion_sql', array()); + if (count($excludedUserids) > 0) { + // Exclude all + $excludeSql = ' AND `userid` NOT IN (' . implode(', ', $excludedUserids) . ')'; + } // END - if // Check for new holiday extension if (isExtensionInstalledAndNewer('holiday', '0.1.3')) { // Include only users with no active holiday - $excludeUserids .= " AND `holiday_active`='N'"; + $excludeSql .= " AND `holiday_active`='N'"; } // END - if // Check for all accounts @@ -79,8 +77,8 @@ WHERE " . runFilterChain('user_exclusion_sql', ' ') . " AND (UNIX_TIMESTAMP() - `joined`) >= {?ap_inactive_since?} AND (UNIX_TIMESTAMP() - `last_online`) >= {?ap_inactive_since?} AND - (UNIX_TIMESTAMP() - `ap_notified`) >= {?ap_inactive_since?} - " . $excludeUserids . " + (UNIX_TIMESTAMP() - `ap_notified`) >= {?ap_inactive_since?} AND + " . $excludeSql . " ORDER BY `userid` ASC", __FILE__, __LINE__); @@ -111,17 +109,20 @@ ORDER BY } // END - while // Remove last comma - $useridsContent = implode(chr(10), $userids); + $content['userids'] = implode(PHP_EOL, $userids); // Send mail notification to admin - sendAdminNotification('{--ADMIN_AUTOPURGE_INACTIVE_SUBJECT--}', 'admin_autopurge_inactive', $useridsContent); + sendAdminNotification('{--ADMIN_AUTOPURGE_INACTIVE_SUBJECT--}', 'admin_autopurge_inactive', $content); } // END - if // Free memory SQL_FREERESULT($result_inactive); - // 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 + /* + * Now let's have a look for inactive accounts for deletion. Use the newly + * added exclude list here for e.g. excluding holiday users, test users et + * cetera. + */ $result_inactive = SQL_QUERY("SELECT `userid`, `email`, @@ -135,7 +136,7 @@ WHERE (UNIX_TIMESTAMP() - `last_online`) >= {?ap_inactive_since?} AND (UNIX_TIMESTAMP() - `ap_notified`) >= {?ap_inactive_time?} AND `ap_notified` > 0 -" . $excludeUserids . " + " . $excludeSql . " ORDER BY `userid` ASC", __FILE__, __LINE__); @@ -156,7 +157,7 @@ ORDER BY } // END - while // Display all userids - $useridsContent = implode(chr(10), $userids); + $useridsContent = implode(PHP_EOL, $userids); // Send mail notification to admin if (getConfig('ap_in_notify') == 'Y') {