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 * 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 * Copyright (c) 2009, 2010 by Mailer Developer Team *
22 * For more information visit: http://www.mxchange.org *
24 * This program is free software; you can redistribute it and/or modify *
25 * it under the terms of the GNU General Public License as published by *
26 * the Free Software Foundation; either version 2 of the License, or *
27 * (at your option) any later version. *
29 * This program is distributed in the hope that it will be useful, *
30 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
31 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
32 * GNU General Public License for more details. *
34 * You should have received a copy of the GNU General Public License *
35 * along with this program; if not, write to the Free Software *
36 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
38 ************************************************************************/
40 // Some security stuff...
41 if (!defined('__SECURITY')) {
46 setThisExtensionVersion('0.4.0');
48 // Version history array (add more with , '0.1.0' and so on)
49 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'));
51 // Keep this extension always active!
52 setExtensionAlwaysActive('Y');
54 switch (getExtensionMode()) {
55 case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
56 // SQL commands to run
57 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` MODIFY data_type ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE','DELETED') NOT NULL DEFAULT 'TEMP'");
58 if (isExtensionActive('bonus')) {
59 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` MODIFY data_type ENUM('NEW','QUEUE','SEND','DELETED') NOT NULL DEFAULT 'NEW'");
63 case 'remove': // Do stuff when removing extension
64 // SQL commands to run
65 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` MODIFY data_type ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE') NOT NULL DEFAULT 'TEMP'");
66 if (isExtensionActive('bonus')) {
67 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` MODIFY data_type ENUM('NEW','QUEUE','SEND') NOT NULL DEFAULT 'NEW'");
69 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('config_autopurge','list_autopurge')");
70 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` DROP ap_notified");
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
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 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));