X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fpurge%2Fpurge-tasks.php;h=d18fc5db72afad46be278cb71e8ede0c8d44d8ab;hp=4917a6f8dc7c0cd6808a49c65167067615ec91d5;hb=49acdb7a7adbcf25a8e8683b5581bfcec72b23bd;hpb=8fad776382e63b3f73f8dbe289f229d79cfc2c22 diff --git a/inc/purge/purge-tasks.php b/inc/purge/purge-tasks.php index 4917a6f8dc..d18fc5db72 100644 --- a/inc/purge/purge-tasks.php +++ b/inc/purge/purge-tasks.php @@ -16,7 +16,7 @@ * $Author:: $ * * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2009 by Roland Haeder * - * Copyright (c) 2009 - 2012 by Mailer Developer Team * + * Copyright (c) 2009 - 2015 by Mailer Developer Team * * For more information visit: http://mxchange.org * * * * This program is free software; you can redistribute it and/or modify * @@ -41,29 +41,58 @@ if (!defined('__SECURITY')) { } // END - if // Abort if autopurge is not active or disabled by admin -if ((!isExtensionActive('autopurge')) || (!isAutoPurgingActive())) { +if ((!isExtensionActive('autopurge')) || (!isAutoPurgingActive()) || (getConfig('ap_tasks_notify') == 'N')) { // Abort here - return false; + return FALSE; } // END - if // Check version (must be >= 0.1.9) if ((isExtensionInstalledAndNewer('task', '0.1.9')) && (getConfig('autopurge_tasks') == 'Y')) { - // Purge deleted tasks (no notification to admin) - SQL_QUERY("DELETE LOW_PRIORITY + // Select all tasks that needs purging + $result = sqlQuery("SELECT + `id`, + `assigned_admin`, + `userid`, + `status`, + `task_type`, + `subject`, + `task_created` FROM `{?_MYSQL_PREFIX?}_task_system` WHERE `status`='DELETED' AND (UNIX_TIMESTAMP() - `task_created`) >= {?ap_tasks_time?}", __FILE__, __LINE__); - // Get deleted rows - $deletedTasks = SQL_AFFECTEDROWS(); - // Send out a notification? - if (($deletedTasks > 0) && (getConfig('ap_tasks_notify') == 'Y')) { + if (!ifSqlHasZeroNumRows($result)) { + // Init output and load all rows + $output = ''; $ids = array(); + while ($row = sqlFetchArray($result)) { + // "Translate" creation timestamp + $row['task_created'] = generateDateTime($row['task_created'], '1'); + + // Load row template + $output .= loadEmailTemplate('admin_purge_task_row', $row); + + // Remember id number for deletion + array_push($ids, $row['id']); + } // END - while + + // Init content array + $content = array( + 'count' => sqlNumRows($result), + 'rows' => $output + ); + + // Delete all tasks + sqlQuery('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_task_system` WHERE `id` IN (' . implode(', ', $ids) . ')', __FILE__, __LINE__); + // Send out email to admin - sendAdminNotification('{--ADMIN_AUTOPURGE_TASKS_SUBJECT--}', 'admin_autopurge_tsks', $deletedTasks); + sendAdminNotification('{--ADMIN_AUTOPURGE_TASKS_SUBJECT--}', 'admin_purge_task', $content); } // END - if + + // Free result + sqlFreeResult($result); } // END - if //