AJAX installation is 'basicly finished' :) Plus I threw in a small christmas present...
[mailer.git] / inc / extensions / ext-autopurge.php
1 <?php
2 /************************************************************************
3  * Mailer v0.2.1-FINAL                                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  * -------------------------------------------------------------------- *
18  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
19  * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
20  * For more information visit: http://mxchange.org                      *
21  *                                                                      *
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.                                  *
26  *                                                                      *
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.                         *
31  *                                                                      *
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,               *
35  * MA  02110-1301  USA                                                  *
36  ************************************************************************/
37
38 // Some security stuff...
39 if (!defined('__SECURITY')) {
40         die();
41 } // END - if
42
43 // Version number
44 setThisExtensionVersion('0.4.1');
45
46 // Version history array (add more with , '0.0.1' and so on)
47 setExtensionVersionHistory(array('0.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', '0.4.1'));
48
49 // Keep this extension always active!
50 setExtensionAlwaysActive('Y');
51
52 switch (getExtensionMode()) {
53         case 'register': // Do stuff when installation is running
54                 // Add dependency to ext-bonus
55                 addExtensionDependency('bonus');
56
57                 // SQL commands to run
58                 addExtensionChangeTableColumnSql('pool', 'data_type', 'data_type', "ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE','DELETED') NOT NULL DEFAULT 'TEMP'");
59                 addExtensionChangeTableColumnSql('bonus', 'data_type', 'data_type', "ENUM('NEW','QUEUE','SEND','DELETED') NOT NULL DEFAULT 'NEW'");
60                 break;
61
62         case 'remove': // Do stuff when removing extension
63                 // SQL commands to run
64                 addExtensionChangeTableColumnSql('pool', 'data_type', 'data_type', "ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE') NOT NULL DEFAULT 'TEMP'");
65                 addExtensionChangeTableColumnSql('bonus', 'data_type', 'data_type', "ENUM('NEW','QUEUE','SEND') NOT NULL DEFAULT 'NEW'");
66                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('config_autopurge','list_autopurge')");
67                 addExtensionDropTableColumnSql('user_data', 'ap_notified');
68
69                 // Unregister with points data
70                 unregisterExtensionPointsData('autopurge_add');
71                 break;
72
73         case 'activate': // Do stuff when admin activates this extension
74                 // SQL commands to run
75                 addExtensionSql('');
76                 break;
77
78         case 'deactivate': // Do stuff when admin deactivates this extension
79                 // SQL commands to run
80                 addExtensionSql('');
81                 break;
82
83         case 'update': // Update an extension
84                 switch (getCurrentExtensionVersion()) {
85                         case '0.1.0': // SQL queries for v0.1.0
86                                 // Add dependency to 'user'
87                                 addExtensionDependency('user');
88
89                                 // SQL queries
90                                 addConfigAddSql('autopurge_inactive', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
91                                 addConfigAddSql('autopurge_unconfirmed', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
92                                 addConfigAddSql('ap_inactive_since', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 2592000');
93                                 addConfigAddSql('ap_inactive_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 25200');
94                                 addConfigAddSql('ap_unconfirmed_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 432000');
95                                 addAdminMenuSql('setup', 'config_autopurge', 'Auto-L&ouml;schung', 'Automatisch inaktive oder nicht best&auml;tigte Accounts l&ouml;schen.', 12);
96                                 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);
97                                 addExtensionAddTableColumnSql('user_data', 'ap_notified', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
98
99                                 // Update notes (these will be set as task text!)
100                                 setExtensionUpdateNotes("Automatisches L&ouml;schen von inaktiven bzw. nicht best&auml;tigten Accounts hinzugef&uuml;gt.");
101                                 break;
102
103                         case '0.1.2': // SQL queries for v0.1.2
104                                 // Update notes (these will be set as task text!)
105                                 setExtensionUpdateNotes("Automatisches L&ouml;schen von als zu l&ouml;schen markierte Tasks hinzugef&uuml;gt.");
106                                 break;
107
108                         case '0.1.3': // SQL queries for v0.1.3
109                                 // Update notes (these will be set as task text!)
110                                 setExtensionUpdateNotes("Nicht mehr verwendetes Update.");
111                                 break;
112
113                         case '0.1.4': // SQL queries for v0.1.4
114                                 // Update notes (these will be set as task text!)
115                                 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.");
116                                 break;
117
118                         case '0.1.5': // SQL queries for v0.1.5
119                                 // Update notes (these will be set as task text!)
120                                 setExtensionUpdateNotes("Anstelle von <strong>ref_depth</strong> wurde <strong>level</strong> programmiert.");
121                                 break;
122
123                         case '0.1.6': // SQL queries for v0.1.6
124                                 // Update notes (these will be set as task text!)
125                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
126                                 break;
127
128                         case '0.1.7': // SQL queries for v0.1.7
129                                 // Update notes (these will be set as task text!)
130                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
131                                 break;
132
133                         case '0.1.8': // SQL queries for v0.1.8
134                                 // Update notes (these will be set as task text!)
135                                 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
136                                 break;
137
138                         case '0.1.9': // SQL queries for v0.1.9
139                                 addConfigAddSql('autopurge_tasks', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
140                                 addConfigAddSql('ap_tasks_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7));
141
142                                 // Update notes (these will be set as task text!)
143                                 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>");
144                                 break;
145
146                         case '0.2.0': // SQL queries for v0.2.0
147                                 addConfigAddSql('ap_in_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
148                                 addConfigAddSql('ap_un_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
149                                 addConfigAddSql('ap_tasks_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
150
151                                 // Update notes (these will be set as task text!)
152                                 setExtensionUpdateNotes("Mail wird bei L&ouml;schung von Aufgaben ausgesendet.<br /><br /><u>Bitte aktualisieren Sie auch die Admin-Templates!</u>");
153                                 break;
154
155                         case '0.2.1': // SQL queries for v0.2.1
156                                 // Update notes (these will be set as task text!)
157                                 setExtensionUpdateNotes("Diverse angebundene Erweiterungen gefixt.");
158                                 break;
159
160                         case '0.2.2': // SQL queries for v0.2.2
161                                 // Update notes (these will be set as task text!)
162                                 setExtensionUpdateNotes("Betreffzeile f&uuml;r gel&ouml;schte Aufgaben korregiert.");
163                                 break;
164
165                         case '0.2.3': // SQL queries for v0.2.3
166                                 // Update notes (these will be set as task text!)
167                                 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
168                                 break;
169
170                         case '0.2.4': // SQL queries for v0.2.4
171                                 // Update notes (these will be set as task text!)
172                                 setExtensionUpdateNotes("Auto-L&ouml;schung von Best&auml;tigungslinks kann unter &quot;Sonstige Einstellungen&quot; abgeschaltet werden (0 setzen!)");
173                                 break;
174
175                         case '0.2.5': // SQL queries for v0.2.5
176                                 // Update notes (these will be set as task text!)
177                                 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> &uuml;berfl&uuml;ssige HTML-Tags entfernt.");
178                                 break;
179
180                         case '0.2.6': // SQL queries for v0.2.6
181                                 // Update notes (these will be set as task text!)
182                                 setExtensionUpdateNotes("Problem mit Jackpot beseitigt ({?POINTS?} wurden nicht gutgeschrieben.)");
183                                 break;
184
185                         case '0.2.7': // SQL queries for v0.2.7
186                                 // Update notes (these will be set as task text!)
187                                 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
188                                 break;
189
190                         case '0.2.8': // SQL queries for v0.2.8
191                                 // Update notes (these will be set as task text!)
192                                 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
193                                 break;
194
195                         case '0.2.9': // SQL queries for v0.2.9
196                                 // Update notes (these will be set as task text!)
197                                 setExtensionUpdateNotes("Mailbetreffs korregiert.");
198                                 break;
199
200                         case '0.3.0': // SQL queries for v0.3.0
201                                 // Update notes (these will be set as task text!)
202                                 setExtensionUpdateNotes("Template <u>admin_config_autopurge_pro.tpl</u> ist &uuml;berfl&uuml;ssig geworden. Bitte l&ouml;schen Sie dies!");
203                                 break;
204
205                         case '0.3.1': // SQL queries for v0.3.1
206                                 // Update notes (these will be set as task text!)
207                                 setExtensionUpdateNotes("Datumsformat festgelegt auf ausf&uuml;hrlich.");
208                                 break;
209
210                         case '0.3.2': // SQL queries for v0.3.2
211                                 // Update notes (these will be set as task text!)
212                                 setExtensionUpdateNotes("W&ouml;rter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
213                                 break;
214
215                         case '0.3.3': // SQL queries for v0.3.3
216                                 addConfigAddSql('ap_del_mails', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
217                                 addConfigAddSql('ap_dm_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
218                                 addConfigAddSql('ap_dm_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}');
219
220                                 // Update notes (these will be set as task text!)
221                                 setExtensionUpdateNotes("Von bereits gel&ouml;schten Mitgliedern die Mails l&ouml;schen integriert.");
222                                 break;
223
224                         case '0.3.4': // SQL queries for v0.3.4
225                                 // Update notes (these will be set as task text!)
226                                 setExtensionUpdateNotes("Fehler mit <strong>timestamp_send</strong> (Zeile 308) beseitigt.");
227                                 break;
228
229                         case '0.3.5': // SQL queries for v0.3.5
230                                 // Update notes (these will be set as task text!)
231                                 setExtensionUpdateNotes("Fehler mit <strong>ap_del_emails</strong> (Einstellungen im Admin-Bereich) beseitigt.");
232                                 break;
233
234                         case '0.3.6': // SQL queries for v0.3.6
235                                 // Update notes (these will be set as task text!)
236                                 setExtensionUpdateNotes("Die Accounts der Standard-Referral-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.");
237                                 break;
238
239                         case '0.3.7': // SQL queries for v0.3.7
240                                 // Update notes (these will be set as task text!)
241                                 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
242                                 break;
243
244                         case '0.3.8': // SQL queries for v0.3.8
245                                 // Update notes (these will be set as task text!)
246                                 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
247                                 break;
248
249                         case '0.3.9': // SQL queries for v0.3.9
250                                 // Update notes (these will be set as task text!)
251                                 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.");
252                                 break;
253
254                         case '0.4.0': // SQL queries for v0.4.0
255                                 // Update notes (these will be set as task text!)
256                                 setExtensionUpdateNotes("Template-Problem beseitigt. Dies verhinderte das Abspeichern der Einstellungen.");
257                                 break;
258
259                         case '0.4.1': // SQL queries for v0.4.1
260                                 // Register with points data system
261                                 registerExtensionPointsData('autopurge_add', 'points', 'LOCKED', 'DIRECT');
262
263                                 // Update notes
264                                 setExtensionUpdateNotes("R&uuml;ckschriften bei Auto-L&ouml;schungen werden nun &uuml;ber die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
265                                 break;
266                 } // END - switch
267                 break;
268
269         case 'modify': // When the extension got modified
270                 break;
271
272         case 'test': // For testing purposes
273                 break;
274
275         case 'init': // Do stuff when extension is initialized
276                 break;
277
278         default: // Unknown extension mode
279                 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
280                 break;
281 } // END - switch
282
283 // [EOF]
284 ?>