2 /************************************************************************
3 * MXChange v0.2.1 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 * Needs to be in all Files and every File needs "svn propset *
18 * svn:keywords Date Revision" (autoprobset!) at least!!!!!! *
19 * -------------------------------------------------------------------- *
20 * Copyright (c) 2003 - 2009 by Roland Haeder *
21 * For more information visit: http://www.mxchange.org *
23 * This program is free software; you can redistribute it and/or modify *
24 * it under the terms of the GNU General Public License as published by *
25 * the Free Software Foundation; either version 2 of the License, or *
26 * (at your option) any later version. *
28 * This program is distributed in the hope that it will be useful, *
29 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
30 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
31 * GNU General Public License for more details. *
33 * You should have received a copy of the GNU General Public License *
34 * along with this program; if not, write to the Free Software *
35 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
37 ************************************************************************/
39 // Some security stuff...
40 if (!defined('__SECURITY')) {
45 setThisExtensionVersion('0.4.0');
47 // Version history array (add more with , '0.1.0' and so on)
48 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'));
50 // Keep this extension always active!
51 setExtensionAlwaysActive('Y');
53 switch (getExtensionMode()) {
54 case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
55 // SQL commands to run
56 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` MODIFY data_type ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE','DELETED') NOT NULL DEFAULT 'TEMP'");
57 if (isExtensionActive('bonus')) {
58 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 if (isExtensionActive('bonus')) {
66 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` MODIFY data_type ENUM('NEW','QUEUE','SEND') NOT NULL DEFAULT 'NEW'");
68 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('config_autopurge','list_autopurge')");
69 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` DROP ap_notified");
72 case 'activate': // Do stuff when admin activates this extension
73 // SQL commands to run
77 case 'deactivate': // Do stuff when admin deactivates this extension
78 // SQL commands to run
82 case 'update': // Update an extension
83 switch (getCurrentExtensionVersion())
85 case '0.1.0': // SQL queries for v0.1
86 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD autopurge_inactive ENUM('Y','N') NOT NULL DEFAULT 'Y'");
87 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD autopurge_unconfirmed ENUM('Y','N') NOT NULL DEFAULT 'Y'");
88 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD ap_inactive_since BIGINT(20) UNSIGNED NOT NULL DEFAULT '2592000'");
89 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD ap_inactive_time BIGINT(20) UNSIGNED NOT NULL DEFAULT '25200'");
90 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_unconfirmed_time` BIGINT(20) UNSIGNED NOT NULL DEFAULT '432000'");
91 addAdminMenuSql('setup','config_autopurge','Auto-Löschung','Automatisch inaktive oder nicht bestätigte Accounts löschen.',12);
92 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);
93 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `ap_notified` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
95 // Update notes (these will be set as task text!)
96 setExtensionUpdateNotes("Automatisches Lö:schen von inaktiven bzw. nicht bestätigten Accounts hinzugefügt.");
99 case '0.1.2': // SQL queries for v0.1.2
100 // Update notes (these will be set as task text!)
101 setExtensionUpdateNotes("Automatisches Löschen von als zu löschen markierte Tasks hinzugefügt.");
104 case '0.1.4': // SQL queries for v0.1.4
105 // Update notes (these will be set as task text!)
106 setExtensionUpdateNotes("Fehler <div class=\"admin_failed\">Warning: Missing argument 2 for create_timestamp_from_selections() in {?PATH?}inc/libs/pro_functions.php on line 227</div> behoben.");
109 case '0.1.5': // SQL queries for v0.1.5
110 // Update notes (these will be set as task text!)
112 setExtensionUpdateNotes("Anstelle von <strong>ref_depth</strong> wurde <strong>level</strong> programmiert.");
115 case '0.1.6': // SQL queries for v0.1.6
116 // Update notes (these will be set as task text!)
117 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
120 case '0.1.7': // SQL queries for v0.1.7
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.8': // SQL queries for v0.1.8
126 // Update notes (these will be set as task text!)
127 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
130 case '0.1.9': // SQL queries for v0.1.9
131 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD autopurge_tasks ENUM('Y','N') NOT NULL DEFAULT 'Y'");
132 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD ap_tasks_time BIGINT(20) UNSIGNED NOT NULL DEFAULT '".(getConfig('ONE_DAY')*7)."'");
134 // Update notes (these will be set as task text!)
135 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>");
138 case '0.2.0': // SQL queries for v0.2.0
139 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD ap_in_notify ENUM('Y','N') NOT NULL DEFAULT 'Y'");
140 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD ap_un_notify ENUM('Y','N') NOT NULL DEFAULT 'Y'");
141 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD ap_tasks_notify ENUM('Y','N') NOT NULL DEFAULT 'Y'");
143 // Update notes (these will be set as task text!)
144 setExtensionUpdateNotes("Mail wird bei Löschung von Aufgaben ausgesendet.<br /><br /><u>Bitte aktualisieren Sie auch die Admin-Templates!</u>");
147 case '0.2.1': // SQL queries for v0.2.1
148 // Update notes (these will be set as task text!)
149 setExtensionUpdateNotes("Diverse angebundene Erweiterungen gefixt.");
152 case '0.2.2': // SQL queries for v0.2.2
153 // Update notes (these will be set as task text!)
154 setExtensionUpdateNotes("Betreffzeile für gelöschte Aufgaben korregiert.");
157 case '0.2.3': // SQL queries for v0.2.3
158 // Update notes (these will be set as task text!)
159 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
162 case '0.2.4': // SQL queries for v0.2.4
163 // Update notes (these will be set as task text!)
164 setExtensionUpdateNotes("Auto-Löschung von Bestätigungslinks kann unter "Sonstige Einstellungen" abgeschaltet werden (0 setzen!)");
167 case '0.2.5': // SQL queries for v0.2.5
168 // Update notes (these will be set as task text!)
169 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
172 case '0.2.6': // SQL queries for v0.2.6
173 // Update notes (these will be set as task text!)
174 setExtensionUpdateNotes("Problem mit Jackpot beseitigt ({?POINTS?} wurden nicht gutgeschrieben.)");
177 case '0.2.7': // SQL queries for v0.2.7
178 // Update notes (these will be set as task text!)
179 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
182 case '0.2.8': // SQL queries for v0.2.8
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.9': // SQL queries for v0.2.9
188 // Update notes (these will be set as task text!)
189 setExtensionUpdateNotes("Mailbetreffs korregiert.");
192 case '0.3.0': // SQL queries for v0.3.0
193 // Update notes (these will be set as task text!)
194 setExtensionUpdateNotes("Template <u>admin_config_autopurge_pro.tpl</u> ist überflüssig geworden. Bitte löschen Sie dies!");
197 case '0.3.1': // SQL queries for v0.3.1
198 // Update notes (these will be set as task text!)
199 setExtensionUpdateNotes("Datumsformat festgelegt auf ausführlich.");
202 case '0.3.2': // SQL queries for v0.3.2
203 // Update notes (these will be set as task text!)
204 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
207 case '0.3.3': // SQL queries for v0.3.3
208 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD ap_del_mails ENUM('Y','N') NOT NULL DEFAULT 'Y'");
209 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD ap_dm_notify ENUM('Y','N') NOT NULL DEFAULT 'Y'");
210 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD ap_dm_timeout BIGINT(20) UNSIGNED NOT NULL DEFAULT '86400'");
212 // Update notes (these will be set as task text!)
213 setExtensionUpdateNotes("Von bereits gelöschten Mitgliedern die Mails löschen integriert.");
216 case '0.3.4': // SQL queries for v0.3.4
217 // Update notes (these will be set as task text!)
218 setExtensionUpdateNotes("Fehler mit <strong>timestamp_send</strong> (Zeile 308) beseitigt.");
221 case '0.3.5': // SQL queries for v0.3.5
222 // Update notes (these will be set as task text!)
223 setExtensionUpdateNotes("Fehler mit <strong>ap_del_emails</strong> (Einstellungen im Admin-Bereich) beseitigt.");
226 case '0.3.6': // SQL queries for v0.3.6
227 // Update notes (these will be set as task text!)
228 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.");
231 case '0.3.7': // SQL queries for v0.3.7
232 // Update notes (these will be set as task text!)
233 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
236 case '0.3.8': // SQL queries for v0.3.8
237 // Update notes (these will be set as task text!)
238 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
241 case '0.3.9': // SQL queries for v0.3.9
242 // Update notes (these will be set as task text!)
243 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.");
246 case '0.4.0': // SQL queries for v0.4.0
247 // Update notes (these will be set as task text!)
248 setExtensionUpdateNotes("Template-Problem beseitigt. Dies verhinderte das Abspeichern der Einstellungen.");
253 case 'modify': // When the extension got modified
256 case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
259 case 'init': // Do stuff when extension is initialized
262 default: // Unknown extension mode
263 DEBUG_LOG(__FILE__, __LINE__, sprintf("Unknown extension mode %s detected.", getExtensionMode()));