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, 2010 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 (modules.php?module=admin is called)
54 // SQL commands to run
55 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` MODIFY data_type ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE','DELETED') NOT NULL DEFAULT 'TEMP'");
56 if (isExtensionActive('bonus')) {
57 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` MODIFY data_type ENUM('NEW','QUEUE','SEND','DELETED') NOT NULL DEFAULT 'NEW'");
61 case 'remove': // Do stuff when removing extension
62 // SQL commands to run
63 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` MODIFY data_type ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE') NOT NULL DEFAULT 'TEMP'");
64 if (isExtensionActive('bonus')) {
65 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` MODIFY data_type ENUM('NEW','QUEUE','SEND') NOT NULL DEFAULT 'NEW'");
67 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('config_autopurge','list_autopurge')");
68 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` DROP ap_notified");
71 case 'activate': // Do stuff when admin activates this extension
72 // SQL commands to run
76 case 'deactivate': // Do stuff when admin deactivates this extension
77 // SQL commands to run
81 case 'update': // Update an extension
82 switch (getCurrentExtensionVersion()) {
83 case '0.1.0': // SQL queries for v0.1
84 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `autopurge_inactive` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
85 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `autopurge_unconfirmed` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
86 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_inactive_since` BIGINT(20) UNSIGNED NOT NULL DEFAULT '2592000'");
87 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_inactive_time` BIGINT(20) UNSIGNED NOT NULL DEFAULT '25200'");
88 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_unconfirmed_time` BIGINT(20) UNSIGNED NOT NULL DEFAULT '432000'");
89 addAdminMenuSql('setup','config_autopurge','Auto-Löschung','Automatisch inaktive oder nicht bestätigte Accounts löschen.',12);
90 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);
91 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `ap_notified` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
93 // Update notes (these will be set as task text!)
94 setExtensionUpdateNotes("Automatisches Lö:schen von inaktiven bzw. nicht bestätigten Accounts hinzugefügt.");
97 case '0.1.2': // SQL queries for v0.1.2
98 // Update notes (these will be set as task text!)
99 setExtensionUpdateNotes("Automatisches Löschen von als zu löschen markierte Tasks hinzugefügt.");
102 case '0.1.4': // SQL queries for v0.1.4
103 // Update notes (these will be set as task text!)
104 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.");
107 case '0.1.5': // SQL queries for v0.1.5
108 // Update notes (these will be set as task text!)
110 setExtensionUpdateNotes("Anstelle von <strong>ref_depth</strong> wurde <strong>level</strong> programmiert.");
113 case '0.1.6': // SQL queries for v0.1.6
114 // Update notes (these will be set as task text!)
115 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
118 case '0.1.7': // SQL queries for v0.1.7
119 // Update notes (these will be set as task text!)
120 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
123 case '0.1.8': // SQL queries for v0.1.8
124 // Update notes (these will be set as task text!)
125 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
128 case '0.1.9': // SQL queries for v0.1.9
129 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `autopurge_tasks` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
130 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_tasks_time` BIGINT(20) UNSIGNED NOT NULL DEFAULT '".(getConfig('ONE_DAY')*7)."'");
132 // Update notes (these will be set as task text!)
133 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>");
136 case '0.2.0': // SQL queries for v0.2.0
137 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_in_notify` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
138 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_un_notify` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
139 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_tasks_notify` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
141 // Update notes (these will be set as task text!)
142 setExtensionUpdateNotes("Mail wird bei Löschung von Aufgaben ausgesendet.<br /><br /><u>Bitte aktualisieren Sie auch die Admin-Templates!</u>");
145 case '0.2.1': // SQL queries for v0.2.1
146 // Update notes (these will be set as task text!)
147 setExtensionUpdateNotes("Diverse angebundene Erweiterungen gefixt.");
150 case '0.2.2': // SQL queries for v0.2.2
151 // Update notes (these will be set as task text!)
152 setExtensionUpdateNotes("Betreffzeile für gelöschte Aufgaben korregiert.");
155 case '0.2.3': // SQL queries for v0.2.3
156 // Update notes (these will be set as task text!)
157 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
160 case '0.2.4': // SQL queries for v0.2.4
161 // Update notes (these will be set as task text!)
162 setExtensionUpdateNotes("Auto-Löschung von Bestätigungslinks kann unter "Sonstige Einstellungen" abgeschaltet werden (0 setzen!)");
165 case '0.2.5': // SQL queries for v0.2.5
166 // Update notes (these will be set as task text!)
167 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
170 case '0.2.6': // SQL queries for v0.2.6
171 // Update notes (these will be set as task text!)
172 setExtensionUpdateNotes("Problem mit Jackpot beseitigt ({?POINTS?} wurden nicht gutgeschrieben.)");
175 case '0.2.7': // SQL queries for v0.2.7
176 // Update notes (these will be set as task text!)
177 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
180 case '0.2.8': // SQL queries for v0.2.8
181 // Update notes (these will be set as task text!)
182 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
185 case '0.2.9': // SQL queries for v0.2.9
186 // Update notes (these will be set as task text!)
187 setExtensionUpdateNotes("Mailbetreffs korregiert.");
190 case '0.3.0': // SQL queries for v0.3.0
191 // Update notes (these will be set as task text!)
192 setExtensionUpdateNotes("Template <u>admin_config_autopurge_pro.tpl</u> ist überflüssig geworden. Bitte löschen Sie dies!");
195 case '0.3.1': // SQL queries for v0.3.1
196 // Update notes (these will be set as task text!)
197 setExtensionUpdateNotes("Datumsformat festgelegt auf ausführlich.");
200 case '0.3.2': // SQL queries for v0.3.2
201 // Update notes (these will be set as task text!)
202 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
205 case '0.3.3': // SQL queries for v0.3.3
206 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_del_mails` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
207 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_dm_notify` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
208 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_dm_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT '86400'");
210 // Update notes (these will be set as task text!)
211 setExtensionUpdateNotes("Von bereits gelöschten Mitgliedern die Mails löschen integriert.");
214 case '0.3.4': // SQL queries for v0.3.4
215 // Update notes (these will be set as task text!)
216 setExtensionUpdateNotes("Fehler mit <strong>timestamp_send</strong> (Zeile 308) beseitigt.");
219 case '0.3.5': // SQL queries for v0.3.5
220 // Update notes (these will be set as task text!)
221 setExtensionUpdateNotes("Fehler mit <strong>ap_del_emails</strong> (Einstellungen im Admin-Bereich) beseitigt.");
224 case '0.3.6': // SQL queries for v0.3.6
225 // Update notes (these will be set as task text!)
226 setExtensionUpdateNotes("Die Accounts der Standart-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.");
229 case '0.3.7': // SQL queries for v0.3.7
230 // Update notes (these will be set as task text!)
231 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
234 case '0.3.8': // SQL queries for v0.3.8
235 // Update notes (these will be set as task text!)
236 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
239 case '0.3.9': // SQL queries for v0.3.9
240 // Update notes (these will be set as task text!)
241 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.");
244 case '0.4.0': // SQL queries for v0.4.0
245 // Update notes (these will be set as task text!)
246 setExtensionUpdateNotes("Template-Problem beseitigt. Dies verhinderte das Abspeichern der Einstellungen.");
251 case 'modify': // When the extension got modified
254 case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
257 case 'init': // Do stuff when extension is initialized
260 default: // Unknown extension mode
261 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));