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 - 2011 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 'bonus'
55 addExtensionDependency('bonus');
57 // SQL commands to run
58 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` CHANGE `data_type` `data_type` ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE','DELETED') NOT NULL DEFAULT 'TEMP'");
59 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` CHANGE `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 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` CHANGE `data_type` `data_type` ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE') NOT NULL DEFAULT 'TEMP'");
65 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` CHANGE `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 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` DROP `ap_notified`");
70 case 'activate': // Do stuff when admin activates this extension
71 // SQL commands to run
75 case 'deactivate': // Do stuff when admin deactivates this extension
76 // SQL commands to run
80 case 'update': // Update an extension
81 switch (getCurrentExtensionVersion()) {
82 case '0.1.0': // SQL queries for v0.1
83 // Add dependency to 'user'
84 addExtensionDependency('user');
87 addConfigAddSql('autopurge_inactive', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
88 addConfigAddSql('autopurge_unconfirmed', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
89 addConfigAddSql('ap_inactive_since', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 2592000');
90 addConfigAddSql('ap_inactive_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 25200');
91 addConfigAddSql('ap_unconfirmed_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 432000');
92 addAdminMenuSql('setup', 'config_autopurge', 'Auto-Löschung', 'Automatisch inaktive oder nicht bestätigte Accounts löschen.', 12);
93 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);
94 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `ap_notified` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
96 // Update notes (these will be set as task text!)
97 setExtensionUpdateNotes("Automatisches Löschen von inaktiven bzw. nicht bestätigten Accounts hinzugefügt.");
100 case '0.1.2': // SQL queries for v0.1.2
101 // Update notes (these will be set as task text!)
102 setExtensionUpdateNotes("Automatisches Löschen von als zu löschen markierte Tasks hinzugefügt.");
105 case '0.1.3': // SQL queries for v0.1.3
106 // Update notes (these will be set as task text!)
107 setExtensionUpdateNotes("Nicht mehr verwendetes Update.");
110 case '0.1.4': // SQL queries for v0.1.4
111 // Update notes (these will be set as task text!)
112 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.");
115 case '0.1.5': // SQL queries for v0.1.5
116 // Update notes (these will be set as task text!)
117 setExtensionUpdateNotes("Anstelle von <strong>ref_depth</strong> wurde <strong>level</strong> programmiert.");
120 case '0.1.6': // SQL queries for v0.1.6
121 // Update notes (these will be set as task text!)
122 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
125 case '0.1.7': // SQL queries for v0.1.7
126 // Update notes (these will be set as task text!)
127 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
130 case '0.1.8': // SQL queries for v0.1.8
131 // Update notes (these will be set as task text!)
132 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
135 case '0.1.9': // SQL queries for v0.1.9
136 addConfigAddSql('autopurge_tasks', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
137 addConfigAddSql('ap_tasks_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7));
139 // Update notes (these will be set as task text!)
140 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>");
143 case '0.2.0': // SQL queries for v0.2.0
144 addConfigAddSql('ap_in_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
145 addConfigAddSql('ap_un_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
146 addConfigAddSql('ap_tasks_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
148 // Update notes (these will be set as task text!)
149 setExtensionUpdateNotes("Mail wird bei Löschung von Aufgaben ausgesendet.<br /><br /><u>Bitte aktualisieren Sie auch die Admin-Templates!</u>");
152 case '0.2.1': // SQL queries for v0.2.1
153 // Update notes (these will be set as task text!)
154 setExtensionUpdateNotes("Diverse angebundene Erweiterungen gefixt.");
157 case '0.2.2': // SQL queries for v0.2.2
158 // Update notes (these will be set as task text!)
159 setExtensionUpdateNotes("Betreffzeile für gelöschte Aufgaben korregiert.");
162 case '0.2.3': // SQL queries for v0.2.3
163 // Update notes (these will be set as task text!)
164 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
167 case '0.2.4': // SQL queries for v0.2.4
168 // Update notes (these will be set as task text!)
169 setExtensionUpdateNotes("Auto-Löschung von Bestätigungslinks kann unter "Sonstige Einstellungen" abgeschaltet werden (0 setzen!)");
172 case '0.2.5': // SQL queries for v0.2.5
173 // Update notes (these will be set as task text!)
174 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
177 case '0.2.6': // SQL queries for v0.2.6
178 // Update notes (these will be set as task text!)
179 setExtensionUpdateNotes("Problem mit Jackpot beseitigt ({?POINTS?} wurden nicht gutgeschrieben.)");
182 case '0.2.7': // SQL queries for v0.2.7
183 // Update notes (these will be set as task text!)
184 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
187 case '0.2.8': // SQL queries for v0.2.8
188 // Update notes (these will be set as task text!)
189 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
192 case '0.2.9': // SQL queries for v0.2.9
193 // Update notes (these will be set as task text!)
194 setExtensionUpdateNotes("Mailbetreffs korregiert.");
197 case '0.3.0': // SQL queries for v0.3.0
198 // Update notes (these will be set as task text!)
199 setExtensionUpdateNotes("Template <u>admin_config_autopurge_pro.tpl</u> ist überflüssig geworden. Bitte löschen Sie dies!");
202 case '0.3.1': // SQL queries for v0.3.1
203 // Update notes (these will be set as task text!)
204 setExtensionUpdateNotes("Datumsformat festgelegt auf ausführlich.");
207 case '0.3.2': // SQL queries for v0.3.2
208 // Update notes (these will be set as task text!)
209 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
212 case '0.3.3': // SQL queries for v0.3.3
213 addConfigAddSql('ap_del_mails', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
214 addConfigAddSql('ap_dm_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
215 addConfigAddSql('ap_dm_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}');
217 // Update notes (these will be set as task text!)
218 setExtensionUpdateNotes("Von bereits gelöschten Mitgliedern die Mails löschen integriert.");
221 case '0.3.4': // SQL queries for v0.3.4
222 // Update notes (these will be set as task text!)
223 setExtensionUpdateNotes("Fehler mit <strong>timestamp_send</strong> (Zeile 308) beseitigt.");
226 case '0.3.5': // SQL queries for v0.3.5
227 // Update notes (these will be set as task text!)
228 setExtensionUpdateNotes("Fehler mit <strong>ap_del_emails</strong> (Einstellungen im Admin-Bereich) beseitigt.");
231 case '0.3.6': // SQL queries for v0.3.6
232 // Update notes (these will be set as task text!)
233 setExtensionUpdateNotes("Die Accounts der Standard-Referal-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.");
236 case '0.3.7': // SQL queries for v0.3.7
237 // Update notes (these will be set as task text!)
238 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
241 case '0.3.8': // SQL queries for v0.3.8
242 // Update notes (these will be set as task text!)
243 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
246 case '0.3.9': // SQL queries for v0.3.9
247 // Update notes (these will be set as task text!)
248 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.");
251 case '0.4.0': // SQL queries for v0.4.0
252 // Update notes (these will be set as task text!)
253 setExtensionUpdateNotes("Template-Problem beseitigt. Dies verhinderte das Abspeichern der Einstellungen.");
256 case '0.4.1': // SQL queries for v0.4.1
257 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('autopurge_add','points','LOCKED','DIRECT')");
259 // This depends on ext-sql_patches
260 addExtensionDependency('sql_patches');
263 setExtensionUpdateNotes("Rückschriften bei Auto-Löschungen werden nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
268 case 'modify': // When the extension got modified
271 case 'test': // For testing purposes
274 case 'init': // Do stuff when extension is initialized
277 default: // Unknown extension mode
278 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));