Fixes for broken order page and themes
[mailer.git] / inc / extensions / ext-autopurge.php
1 <?php
2 /************************************************************************
3  * MXChange v0.2.1                                    Start: 05/29/2004 *
4  * ================                             Last change: 01/07/2005 *
5  *                                                                      *
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  * -------------------------------------------------------------------- *
13  * $Revision::                                                        $ *
14  * $Date::                                                            $ *
15  * $Tag:: 0.2.1-FINAL                                                 $ *
16  * $Author::                                                          $ *
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                  *
22  *                                                                      *
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.                                  *
27  *                                                                      *
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.                         *
32  *                                                                      *
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,               *
36  * MA  02110-1301  USA                                                  *
37  ************************************************************************/
38
39 // Some security stuff...
40 if (!defined('__SECURITY')) {
41         die();
42 }
43
44 // Version number
45 setThisExtensionVersion('0.4.0');
46
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'));
49
50 // Keep this extension always active!
51 setExtensionAlwaysActive('Y');
52
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'");
59                 }
60                 break;
61
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'");
67                 }
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");
70                 break;
71
72         case 'activate': // Do stuff when admin activates this extension
73                 // SQL commands to run
74                 addExtensionSql('');
75                 break;
76
77         case 'deactivate': // Do stuff when admin deactivates this extension
78                 // SQL commands to run
79                 addExtensionSql('');
80                 break;
81
82         case 'update': // Update an extension
83                 switch (getCurrentExtensionVersion())
84                 {
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&ouml;schung','Automatisch inaktive oder nicht best&auml;tigte Accounts l&ouml;schen.',12);
92                                 addAdminMenuSql('user','list_autopurge','Inaktive finden','Lassen Sie sich vor dem t&auml;glichen Reset anzeigen, welche Mitglieder als inaktiv erkannt werden und welche gel&ouml;scht werden.',10);
93                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `ap_notified` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
94
95                                 // Update notes (these will be set as task text!)
96                                 setExtensionUpdateNotes("Automatisches L&ouml:schen von inaktiven bzw. nicht best&auml;tigten Accounts hinzugef&uuml;gt.");
97                                 break;
98
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&ouml;schen von als zu l&ouml;schen markierte Tasks hinzugef&uuml;gt.");
102                                 break;
103
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.");
107                                 break;
108
109                         case '0.1.5': // SQL queries for v0.1.5
110                                 // Update notes (these will be set as task text!)
111
112                                 setExtensionUpdateNotes("Anstelle von <strong>ref_depth</strong> wurde <strong>level</strong> programmiert.");
113                                 break;
114
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.");
118                                 break;
119
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.");
123                                 break;
124
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.");
128                                 break;
129
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)."'");
133
134                                 // Update notes (these will be set as task text!)
135                                 setExtensionUpdateNotes("Bereinigung von zu l&ouml;schenden Aufgaben klappt wieder. Zeitlimit f&uuml;r genanntes kann eingestellt werden (Default = 7 Tage).<br /><br /><u>Bitte aktualisieren Sie auch die Admin-Templates!</u>");
136                                 break;
137
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'");
142
143                                 // Update notes (these will be set as task text!)
144                                 setExtensionUpdateNotes("Mail wird bei L&ouml;schung von Aufgaben ausgesendet.<br /><br /><u>Bitte aktualisieren Sie auch die Admin-Templates!</u>");
145                                 break;
146
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.");
150                                 break;
151
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&uuml;r gel&ouml;schte Aufgaben korregiert.");
155                                 break;
156
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.");
160                                 break;
161
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&ouml;schung von Best&auml;tigungslinks kann unter &quot;Sonstige Einstellungen&quot; abgeschaltet werden (0 setzen!)");
165                                 break;
166
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> &uuml;berfl&uuml;ssige HTML-Tags entfernt.");
170                                 break;
171
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.)");
175                                 break;
176
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.");
180                                 break;
181
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.");
185                                 break;
186
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.");
190                                 break;
191
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 &uuml;berfl&uuml;ssig geworden. Bitte l&ouml;schen Sie dies!");
195                                 break;
196
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&uuml;hrlich.");
200                                 break;
201
202                         case '0.3.2': // SQL queries for v0.3.2
203                                 // Update notes (these will be set as task text!)
204                                 setExtensionUpdateNotes("W&ouml;rter <strong>Mailtausch</strong>, <strong>Mailtausches</strong> und <strong>Mailtauscher</strong> sind austauschbar.");
205                                 break;
206
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'");
211
212                                 // Update notes (these will be set as task text!)
213                                 setExtensionUpdateNotes("Von bereits gel&ouml;schten Mitgliedern die Mails l&ouml;schen integriert.");
214                                 break;
215
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.");
219                                 break;
220
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.");
224                                 break;
225
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&ouml;scht und tauchen auch unterhalb der Inaktiven-Liste nicht mehr auf.");
229                                 break;
230
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.");
234                                 break;
235
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.");
239                                 break;
240
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&ouml;schung</strong> finden Sie nun auch die Einstellungen zu Mailbest&auml;tigungs wieder. Zudem werden keine Urlauber (neue Urlaubsschaltung beachtet) mehr als inaktiv erkannt.");
244                                 break;
245
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.");
249                                 break;
250                 }
251                 break;
252
253         case 'modify': // When the extension got modified
254                 break;
255
256         case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
257                 break;
258
259         case 'init': // Do stuff when extension is initialized
260                 break;
261
262         default: // Unknown extension mode
263                 DEBUG_LOG(__FILE__, __LINE__, sprintf("Unknown extension mode %s detected.", getExtensionMode()));
264                 break;
265 }
266
267 // [EOF]
268 ?>