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 * 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()) {
84 case '0.1.0': // SQL queries for v0.1
85 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `autopurge_inactive` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
86 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `autopurge_unconfirmed` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
87 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_inactive_since` BIGINT(20) UNSIGNED NOT NULL DEFAULT '2592000'");
88 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_inactive_time` BIGINT(20) UNSIGNED NOT NULL DEFAULT '25200'");
89 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_unconfirmed_time` BIGINT(20) UNSIGNED NOT NULL DEFAULT '432000'");
90 addAdminMenuSql('setup','config_autopurge','Auto-Löschung','Automatisch inaktive oder nicht bestätigte Accounts löschen.',12);
91 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);
92 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `ap_notified` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
94 // Update notes (these will be set as task text!)
95 setExtensionUpdateNotes("Automatisches Lö:schen von inaktiven bzw. nicht bestätigten Accounts hinzugefügt.");
98 case '0.1.2': // SQL queries for v0.1.2
99 // Update notes (these will be set as task text!)
100 setExtensionUpdateNotes("Automatisches Löschen von als zu löschen markierte Tasks hinzugefügt.");
103 case '0.1.4': // SQL queries for v0.1.4
104 // Update notes (these will be set as task text!)
105 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.");
108 case '0.1.5': // SQL queries for v0.1.5
109 // Update notes (these will be set as task text!)
111 setExtensionUpdateNotes("Anstelle von <strong>ref_depth</strong> wurde <strong>level</strong> programmiert.");
114 case '0.1.6': // SQL queries for v0.1.6
115 // Update notes (these will be set as task text!)
116 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
119 case '0.1.7': // SQL queries for v0.1.7
120 // Update notes (these will be set as task text!)
121 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
124 case '0.1.8': // SQL queries for v0.1.8
125 // Update notes (these will be set as task text!)
126 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
129 case '0.1.9': // SQL queries for v0.1.9
130 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `autopurge_tasks` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
131 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_tasks_time` BIGINT(20) UNSIGNED NOT NULL DEFAULT '".(getConfig('ONE_DAY')*7)."'");
133 // Update notes (these will be set as task text!)
134 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>");
137 case '0.2.0': // SQL queries for v0.2.0
138 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_in_notify` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
139 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_un_notify` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
140 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_tasks_notify` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
142 // Update notes (these will be set as task text!)
143 setExtensionUpdateNotes("Mail wird bei Löschung von Aufgaben ausgesendet.<br /><br /><u>Bitte aktualisieren Sie auch die Admin-Templates!</u>");
146 case '0.2.1': // SQL queries for v0.2.1
147 // Update notes (these will be set as task text!)
148 setExtensionUpdateNotes("Diverse angebundene Erweiterungen gefixt.");
151 case '0.2.2': // SQL queries for v0.2.2
152 // Update notes (these will be set as task text!)
153 setExtensionUpdateNotes("Betreffzeile für gelöschte Aufgaben korregiert.");
156 case '0.2.3': // SQL queries for v0.2.3
157 // Update notes (these will be set as task text!)
158 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
161 case '0.2.4': // SQL queries for v0.2.4
162 // Update notes (these will be set as task text!)
163 setExtensionUpdateNotes("Auto-Löschung von Bestätigungslinks kann unter "Sonstige Einstellungen" abgeschaltet werden (0 setzen!)");
166 case '0.2.5': // SQL queries for v0.2.5
167 // Update notes (these will be set as task text!)
168 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
171 case '0.2.6': // SQL queries for v0.2.6
172 // Update notes (these will be set as task text!)
173 setExtensionUpdateNotes("Problem mit Jackpot beseitigt ({?POINTS?} wurden nicht gutgeschrieben.)");
176 case '0.2.7': // SQL queries for v0.2.7
177 // Update notes (these will be set as task text!)
178 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
181 case '0.2.8': // SQL queries for v0.2.8
182 // Update notes (these will be set as task text!)
183 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
186 case '0.2.9': // SQL queries for v0.2.9
187 // Update notes (these will be set as task text!)
188 setExtensionUpdateNotes("Mailbetreffs korregiert.");
191 case '0.3.0': // SQL queries for v0.3.0
192 // Update notes (these will be set as task text!)
193 setExtensionUpdateNotes("Template <u>admin_config_autopurge_pro.tpl</u> ist überflüssig geworden. Bitte löschen Sie dies!");
196 case '0.3.1': // SQL queries for v0.3.1
197 // Update notes (these will be set as task text!)
198 setExtensionUpdateNotes("Datumsformat festgelegt auf ausführlich.");
201 case '0.3.2': // SQL queries for v0.3.2
202 // Update notes (these will be set as task text!)
203 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
206 case '0.3.3': // SQL queries for v0.3.3
207 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_del_mails` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
208 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_dm_notify` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
209 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_dm_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT '86400'");
211 // Update notes (these will be set as task text!)
212 setExtensionUpdateNotes("Von bereits gelöschten Mitgliedern die Mails löschen integriert.");
215 case '0.3.4': // SQL queries for v0.3.4
216 // Update notes (these will be set as task text!)
217 setExtensionUpdateNotes("Fehler mit <strong>timestamp_send</strong> (Zeile 308) beseitigt.");
220 case '0.3.5': // SQL queries for v0.3.5
221 // Update notes (these will be set as task text!)
222 setExtensionUpdateNotes("Fehler mit <strong>ap_del_emails</strong> (Einstellungen im Admin-Bereich) beseitigt.");
225 case '0.3.6': // SQL queries for v0.3.6
226 // Update notes (these will be set as task text!)
227 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.");
230 case '0.3.7': // SQL queries for v0.3.7
231 // Update notes (these will be set as task text!)
232 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
235 case '0.3.8': // SQL queries for v0.3.8
236 // Update notes (these will be set as task text!)
237 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
240 case '0.3.9': // SQL queries for v0.3.9
241 // Update notes (these will be set as task text!)
242 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.");
245 case '0.4.0': // SQL queries for v0.4.0
246 // Update notes (these will be set as task text!)
247 setExtensionUpdateNotes("Template-Problem beseitigt. Dies verhinderte das Abspeichern der Einstellungen.");
252 case 'modify': // When the extension got modified
255 case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
258 case 'init': // Do stuff when extension is initialized
261 default: // Unknown extension mode
262 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s detected.", getExtensionMode()));