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://www.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.0');
46 // Version history array (add more with , '0.1.0' and so on)
47 setExtensionVersionHistory(array('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'));
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` MODIFY data_type ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE','DELETED') NOT NULL DEFAULT 'TEMP'");
59 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` MODIFY `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` MODIFY `data_type` ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE') NOT NULL DEFAULT 'TEMP'");
65 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` MODIFY `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.4': // SQL queries for v0.1.4
106 // Update notes (these will be set as task text!)
107 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.");
110 case '0.1.5': // SQL queries for v0.1.5
111 // Update notes (these will be set as task text!)
113 setExtensionUpdateNotes("Anstelle von <strong>ref_depth</strong> wurde <strong>level</strong> programmiert.");
116 case '0.1.6': // SQL queries for v0.1.6
117 // Update notes (these will be set as task text!)
118 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
121 case '0.1.7': // SQL queries for v0.1.7
122 // Update notes (these will be set as task text!)
123 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
126 case '0.1.8': // SQL queries for v0.1.8
127 // Update notes (these will be set as task text!)
128 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
131 case '0.1.9': // SQL queries for v0.1.9
132 addConfigAddSql('autopurge_tasks', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
133 addConfigAddSql('ap_tasks_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7));
135 // Update notes (these will be set as task text!)
136 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>");
139 case '0.2.0': // SQL queries for v0.2.0
140 addConfigAddSql('ap_in_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
141 addConfigAddSql('ap_un_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
142 addConfigAddSql('ap_tasks_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
144 // Update notes (these will be set as task text!)
145 setExtensionUpdateNotes("Mail wird bei Löschung von Aufgaben ausgesendet.<br /><br /><u>Bitte aktualisieren Sie auch die Admin-Templates!</u>");
148 case '0.2.1': // SQL queries for v0.2.1
149 // Update notes (these will be set as task text!)
150 setExtensionUpdateNotes("Diverse angebundene Erweiterungen gefixt.");
153 case '0.2.2': // SQL queries for v0.2.2
154 // Update notes (these will be set as task text!)
155 setExtensionUpdateNotes("Betreffzeile für gelöschte Aufgaben korregiert.");
158 case '0.2.3': // SQL queries for v0.2.3
159 // Update notes (these will be set as task text!)
160 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
163 case '0.2.4': // SQL queries for v0.2.4
164 // Update notes (these will be set as task text!)
165 setExtensionUpdateNotes("Auto-Löschung von Bestätigungslinks kann unter "Sonstige Einstellungen" abgeschaltet werden (0 setzen!)");
168 case '0.2.5': // SQL queries for v0.2.5
169 // Update notes (these will be set as task text!)
170 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
173 case '0.2.6': // SQL queries for v0.2.6
174 // Update notes (these will be set as task text!)
175 setExtensionUpdateNotes("Problem mit Jackpot beseitigt ({?POINTS?} wurden nicht gutgeschrieben.)");
178 case '0.2.7': // SQL queries for v0.2.7
179 // Update notes (these will be set as task text!)
180 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
183 case '0.2.8': // SQL queries for v0.2.8
184 // Update notes (these will be set as task text!)
185 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
188 case '0.2.9': // SQL queries for v0.2.9
189 // Update notes (these will be set as task text!)
190 setExtensionUpdateNotes("Mailbetreffs korregiert.");
193 case '0.3.0': // SQL queries for v0.3.0
194 // Update notes (these will be set as task text!)
195 setExtensionUpdateNotes("Template <u>admin_config_autopurge_pro.tpl</u> ist überflüssig geworden. Bitte löschen Sie dies!");
198 case '0.3.1': // SQL queries for v0.3.1
199 // Update notes (these will be set as task text!)
200 setExtensionUpdateNotes("Datumsformat festgelegt auf ausführlich.");
203 case '0.3.2': // SQL queries for v0.3.2
204 // Update notes (these will be set as task text!)
205 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
208 case '0.3.3': // SQL queries for v0.3.3
209 addConfigAddSql('ap_del_mails', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
210 addConfigAddSql('ap_dm_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
211 addConfigAddSql('ap_dm_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}');
213 // Update notes (these will be set as task text!)
214 setExtensionUpdateNotes("Von bereits gelöschten Mitgliedern die Mails löschen integriert.");
217 case '0.3.4': // SQL queries for v0.3.4
218 // Update notes (these will be set as task text!)
219 setExtensionUpdateNotes("Fehler mit <strong>timestamp_send</strong> (Zeile 308) beseitigt.");
222 case '0.3.5': // SQL queries for v0.3.5
223 // Update notes (these will be set as task text!)
224 setExtensionUpdateNotes("Fehler mit <strong>ap_del_emails</strong> (Einstellungen im Admin-Bereich) beseitigt.");
227 case '0.3.6': // SQL queries for v0.3.6
228 // Update notes (these will be set as task text!)
229 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.");
232 case '0.3.7': // SQL queries for v0.3.7
233 // Update notes (these will be set as task text!)
234 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
237 case '0.3.8': // SQL queries for v0.3.8
238 // Update notes (these will be set as task text!)
239 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
242 case '0.3.9': // SQL queries for v0.3.9
243 // Update notes (these will be set as task text!)
244 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.");
247 case '0.4.0': // SQL queries for v0.4.0
248 // Update notes (these will be set as task text!)
249 setExtensionUpdateNotes("Template-Problem beseitigt. Dies verhinderte das Abspeichern der Einstellungen.");
254 case 'modify': // When the extension got modified
257 case 'test': // For testing purposes
260 case 'init': // Do stuff when extension is initialized
263 default: // Unknown extension mode
264 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));