2 /************************************************************************
3 * Mailer v0.2.1-FINAL Start: 05/29/2004 *
4 * =================== Last change: 01/07/2005 *
6 * -------------------------------------------------------------------- *
7 * File : ext-autopurge.php *
8 * -------------------------------------------------------------------- *
9 * Short description : Automatical purging of outdated mail links *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Auto-Loeschung von veralteten Mail-Links *
12 * -------------------------------------------------------------------- *
15 * $Tag:: 0.2.1-FINAL $ *
17 * -------------------------------------------------------------------- *
18 * Copyright (c) 2003 - 2009 by Roland Haeder *
19 * Copyright (c) 2009 - 2012 by Mailer Developer Team *
20 * For more information visit: http://mxchange.org *
22 * This program is free software; you can redistribute it and/or modify *
23 * it under the terms of the GNU General Public License as published by *
24 * the Free Software Foundation; either version 2 of the License, or *
25 * (at your option) any later version. *
27 * This program is distributed in the hope that it will be useful, *
28 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
29 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
30 * GNU General Public License for more details. *
32 * You should have received a copy of the GNU General Public License *
33 * along with this program; if not, write to the Free Software *
34 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
36 ************************************************************************/
38 // Some security stuff...
39 if (!defined('__SECURITY')) {
44 setThisExtensionVersion('0.4.1');
46 // Version history array (add more with , '0.0.1' and so on)
47 setExtensionVersionHistory(array('0.0.0', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1'));
49 // Keep this extension always active!
50 setExtensionAlwaysActive('Y');
52 switch (getExtensionMode()) {
53 case 'register': // Do stuff when installation is running
54 // Add dependency to ext-bonus
55 addExtensionDependency('bonus');
57 // SQL commands to run
58 addExtensionChangeTableColumnSql('pool', 'data_type', 'data_type', "ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE','DELETED') NOT NULL DEFAULT 'TEMP'");
59 addExtensionChangeTableColumnSql('bonus', 'data_type', 'data_type', "ENUM('NEW','QUEUE','SEND','DELETED') NOT NULL DEFAULT 'NEW'");
62 case 'remove': // Do stuff when removing extension
63 // SQL commands to run
64 addExtensionChangeTableColumnSql('pool', 'data_type', 'data_type', "ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE') NOT NULL DEFAULT 'TEMP'");
65 addExtensionChangeTableColumnSql('bonus', 'data_type', 'data_type', "ENUM('NEW','QUEUE','SEND') NOT NULL DEFAULT 'NEW'");
66 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('config_autopurge','list_autopurge')");
67 addExtensionDropTableColumnSql('user_data', 'ap_notified');
69 // Unregister with points data
70 unregisterExtensionPointsData('autopurge_add');
73 case 'activate': // Do stuff when admin activates this extension
74 // SQL commands to run
78 case 'deactivate': // Do stuff when admin deactivates this extension
79 // SQL commands to run
83 case 'update': // Update an extension
84 switch (getCurrentExtensionVersion()) {
85 case '0.1.0': // SQL queries for v0.1.0
86 // Add dependency to 'user'
87 addExtensionDependency('user');
90 addConfigAddSql('autopurge_inactive', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
91 addConfigAddSql('autopurge_unconfirmed', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
92 addConfigAddSql('ap_inactive_since', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 2592000');
93 addConfigAddSql('ap_inactive_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 25200');
94 addConfigAddSql('ap_unconfirmed_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 432000');
95 addAdminMenuSql('setup', 'config_autopurge', 'Auto-Löschung', 'Automatisch inaktive oder nicht bestätigte Accounts löschen.', 12);
96 addAdminMenuSql('user', 'list_autopurge', 'Inaktive finden', 'Lassen Sie sich vor dem täglichen Reset anzeigen, welche Mitglieder als inaktiv erkannt werden und welche gelöscht werden.', 10);
97 addExtensionAddTableColumnSql('user_data', 'ap_notified', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
99 // Update notes (these will be set as task text!)
100 setExtensionUpdateNotes("Automatisches Löschen von inaktiven bzw. nicht bestätigten Accounts hinzugefügt.");
103 case '0.1.2': // SQL queries for v0.1.2
104 // Update notes (these will be set as task text!)
105 setExtensionUpdateNotes("Automatisches Löschen von als zu löschen markierte Tasks hinzugefügt.");
108 case '0.1.3': // SQL queries for v0.1.3
109 // Update notes (these will be set as task text!)
110 setExtensionUpdateNotes("Nicht mehr verwendetes Update.");
113 case '0.1.4': // SQL queries for v0.1.4
114 // Update notes (these will be set as task text!)
115 setExtensionUpdateNotes("Fehler <div class=\"notice\">Warning: Missing argument 2 for create_timestamp_from_selections() in {?PATH?}inc/libs/pro_functions.php on line 227</div> behoben.");
118 case '0.1.5': // SQL queries for v0.1.5
119 // Update notes (these will be set as task text!)
120 setExtensionUpdateNotes("Anstelle von <strong>ref_depth</strong> wurde <strong>level</strong> programmiert.");
123 case '0.1.6': // SQL queries for v0.1.6
124 // Update notes (these will be set as task text!)
125 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
128 case '0.1.7': // SQL queries for v0.1.7
129 // Update notes (these will be set as task text!)
130 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
133 case '0.1.8': // SQL queries for v0.1.8
134 // Update notes (these will be set as task text!)
135 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
138 case '0.1.9': // SQL queries for v0.1.9
139 addConfigAddSql('autopurge_tasks', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
140 addConfigAddSql('ap_tasks_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7));
142 // Update notes (these will be set as task text!)
143 setExtensionUpdateNotes("Bereinigung von zu löschenden Aufgaben klappt wieder. Zeitlimit für genanntes kann eingestellt werden (Default = 7 Tage).<br /><br /><u>Bitte aktualisieren Sie auch die Admin-Templates!</u>");
146 case '0.2.0': // SQL queries for v0.2.0
147 addConfigAddSql('ap_in_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
148 addConfigAddSql('ap_un_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
149 addConfigAddSql('ap_tasks_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
151 // Update notes (these will be set as task text!)
152 setExtensionUpdateNotes("Mail wird bei Löschung von Aufgaben ausgesendet.<br /><br /><u>Bitte aktualisieren Sie auch die Admin-Templates!</u>");
155 case '0.2.1': // SQL queries for v0.2.1
156 // Update notes (these will be set as task text!)
157 setExtensionUpdateNotes("Diverse angebundene Erweiterungen gefixt.");
160 case '0.2.2': // SQL queries for v0.2.2
161 // Update notes (these will be set as task text!)
162 setExtensionUpdateNotes("Betreffzeile für gelöschte Aufgaben korregiert.");
165 case '0.2.3': // SQL queries for v0.2.3
166 // Update notes (these will be set as task text!)
167 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
170 case '0.2.4': // SQL queries for v0.2.4
171 // Update notes (these will be set as task text!)
172 setExtensionUpdateNotes("Auto-Löschung von Bestätigungslinks kann unter "Sonstige Einstellungen" abgeschaltet werden (0 setzen!)");
175 case '0.2.5': // SQL queries for v0.2.5
176 // Update notes (these will be set as task text!)
177 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
180 case '0.2.6': // SQL queries for v0.2.6
181 // Update notes (these will be set as task text!)
182 setExtensionUpdateNotes("Problem mit Jackpot beseitigt ({?POINTS?} wurden nicht gutgeschrieben.)");
185 case '0.2.7': // SQL queries for v0.2.7
186 // Update notes (these will be set as task text!)
187 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
190 case '0.2.8': // SQL queries for v0.2.8
191 // Update notes (these will be set as task text!)
192 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
195 case '0.2.9': // SQL queries for v0.2.9
196 // Update notes (these will be set as task text!)
197 setExtensionUpdateNotes("Mailbetreffs korregiert.");
200 case '0.3.0': // SQL queries for v0.3.0
201 // Update notes (these will be set as task text!)
202 setExtensionUpdateNotes("Template <u>admin_config_autopurge_pro.tpl</u> ist überflüssig geworden. Bitte löschen Sie dies!");
205 case '0.3.1': // SQL queries for v0.3.1
206 // Update notes (these will be set as task text!)
207 setExtensionUpdateNotes("Datumsformat festgelegt auf ausführlich.");
210 case '0.3.2': // SQL queries for v0.3.2
211 // Update notes (these will be set as task text!)
212 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
215 case '0.3.3': // SQL queries for v0.3.3
216 addConfigAddSql('ap_del_mails', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
217 addConfigAddSql('ap_dm_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
218 addConfigAddSql('ap_dm_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}');
220 // Update notes (these will be set as task text!)
221 setExtensionUpdateNotes("Von bereits gelöschten Mitgliedern die Mails löschen integriert.");
224 case '0.3.4': // SQL queries for v0.3.4
225 // Update notes (these will be set as task text!)
226 setExtensionUpdateNotes("Fehler mit <strong>timestamp_send</strong> (Zeile 308) beseitigt.");
229 case '0.3.5': // SQL queries for v0.3.5
230 // Update notes (these will be set as task text!)
231 setExtensionUpdateNotes("Fehler mit <strong>ap_del_emails</strong> (Einstellungen im Admin-Bereich) beseitigt.");
234 case '0.3.6': // SQL queries for v0.3.6
235 // Update notes (these will be set as task text!)
236 setExtensionUpdateNotes("Die Accounts der Standard-Referral-Id, der Bonus-Id, Bettellink-Id und der Verdoppler-Id werden nun nicht mehr gelöscht und tauchen auch unterhalb der Inaktiven-Liste nicht mehr auf.");
239 case '0.3.7': // SQL queries for v0.3.7
240 // Update notes (these will be set as task text!)
241 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
244 case '0.3.8': // SQL queries for v0.3.8
245 // Update notes (these will be set as task text!)
246 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
249 case '0.3.9': // SQL queries for v0.3.9
250 // Update notes (these will be set as task text!)
251 setExtensionUpdateNotes("if-Anweisungen auf Funktion <strong>empty()</strong> umgestellt. Unter <strong>Auto-Löschung</strong> finden Sie nun auch die Einstellungen zu Mailbestätigungs wieder. Zudem werden keine Urlauber (neue Urlaubsschaltung beachtet) mehr als inaktiv erkannt.");
254 case '0.4.0': // SQL queries for v0.4.0
255 // Update notes (these will be set as task text!)
256 setExtensionUpdateNotes("Template-Problem beseitigt. Dies verhinderte das Abspeichern der Einstellungen.");
259 case '0.4.1': // SQL queries for v0.4.1
260 // Register with points data system
261 registerExtensionPointsData('autopurge_add', 'points', 'LOCKED', 'DIRECT');
263 // This depends on ext-sql_patches
264 addExtensionDependency('sql_patches');
267 setExtensionUpdateNotes("Rückschriften bei Auto-Löschungen werden nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
272 case 'modify': // When the extension got modified
275 case 'test': // For testing purposes
278 case 'init': // Do stuff when extension is initialized
281 default: // Unknown extension mode
282 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));