c963ddeb13b0bf5bebdb9d8871b9782fc5991f00
[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 - 2011 by Mailer Developer Team                   *
20  * For more information visit: http://www.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.0');
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'));
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 'bonus'
55                 addExtensionDependency('bonus');
56
57                 // SQL commands to run
58                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` CHANGE `data_type` `data_type` ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE','DELETED') NOT NULL DEFAULT 'TEMP'");
59                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` CHANGE `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                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` CHANGE `data_type` `data_type` ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE') NOT NULL DEFAULT 'TEMP'");
65                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` CHANGE `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                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` DROP `ap_notified`");
68                 break;
69
70         case 'activate': // Do stuff when admin activates this extension
71                 // SQL commands to run
72                 addExtensionSql('');
73                 break;
74
75         case 'deactivate': // Do stuff when admin deactivates this extension
76                 // SQL commands to run
77                 addExtensionSql('');
78                 break;
79
80         case 'update': // Update an extension
81                 switch (getCurrentExtensionVersion()) {
82                         case '0.1.0': // SQL queries for v0.1
83                                 // Add dependency to 'user'
84                                 addExtensionDependency('user');
85
86                                 // SQL queries
87                                 addConfigAddSql('autopurge_inactive', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
88                                 addConfigAddSql('autopurge_unconfirmed', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
89                                 addConfigAddSql('ap_inactive_since', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 2592000');
90                                 addConfigAddSql('ap_inactive_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 25200');
91                                 addConfigAddSql('ap_unconfirmed_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 432000');
92                                 addAdminMenuSql('setup', 'config_autopurge', 'Auto-L&ouml;schung', 'Automatisch inaktive oder nicht best&auml;tigte Accounts l&ouml;schen.', 12);
93                                 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);
94                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `ap_notified` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
95
96                                 // Update notes (these will be set as task text!)
97                                 setExtensionUpdateNotes("Automatisches L&ouml;schen von inaktiven bzw. nicht best&auml;tigten Accounts hinzugef&uuml;gt.");
98                                 break;
99
100                         case '0.1.2': // SQL queries for v0.1.2
101                                 // Update notes (these will be set as task text!)
102                                 setExtensionUpdateNotes("Automatisches L&ouml;schen von als zu l&ouml;schen markierte Tasks hinzugef&uuml;gt.");
103                                 break;
104
105                         case '0.1.3': // SQL queries for v0.1.3
106                                 // Update notes (these will be set as task text!)
107                                 setExtensionUpdateNotes("Nicht mehr verwendetes Update.");
108                                 break;
109
110                         case '0.1.4': // SQL queries for v0.1.4
111                                 // Update notes (these will be set as task text!)
112                                 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.");
113                                 break;
114
115                         case '0.1.5': // SQL queries for v0.1.5
116                                 // Update notes (these will be set as task text!)
117                                 setExtensionUpdateNotes("Anstelle von <strong>ref_depth</strong> wurde <strong>level</strong> programmiert.");
118                                 break;
119
120                         case '0.1.6': // SQL queries for v0.1.6
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.7': // SQL queries for v0.1.7
126                                 // Update notes (these will be set as task text!)
127                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
128                                 break;
129
130                         case '0.1.8': // SQL queries for v0.1.8
131                                 // Update notes (these will be set as task text!)
132                                 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
133                                 break;
134
135                         case '0.1.9': // SQL queries for v0.1.9
136                                 addConfigAddSql('autopurge_tasks', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
137                                 addConfigAddSql('ap_tasks_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7));
138
139                                 // Update notes (these will be set as task text!)
140                                 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>");
141                                 break;
142
143                         case '0.2.0': // SQL queries for v0.2.0
144                                 addConfigAddSql('ap_in_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
145                                 addConfigAddSql('ap_un_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
146                                 addConfigAddSql('ap_tasks_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
147
148                                 // Update notes (these will be set as task text!)
149                                 setExtensionUpdateNotes("Mail wird bei L&ouml;schung von Aufgaben ausgesendet.<br /><br /><u>Bitte aktualisieren Sie auch die Admin-Templates!</u>");
150                                 break;
151
152                         case '0.2.1': // SQL queries for v0.2.1
153                                 // Update notes (these will be set as task text!)
154                                 setExtensionUpdateNotes("Diverse angebundene Erweiterungen gefixt.");
155                                 break;
156
157                         case '0.2.2': // SQL queries for v0.2.2
158                                 // Update notes (these will be set as task text!)
159                                 setExtensionUpdateNotes("Betreffzeile f&uuml;r gel&ouml;schte Aufgaben korregiert.");
160                                 break;
161
162                         case '0.2.3': // SQL queries for v0.2.3
163                                 // Update notes (these will be set as task text!)
164                                 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
165                                 break;
166
167                         case '0.2.4': // SQL queries for v0.2.4
168                                 // Update notes (these will be set as task text!)
169                                 setExtensionUpdateNotes("Auto-L&ouml;schung von Best&auml;tigungslinks kann unter &quot;Sonstige Einstellungen&quot; abgeschaltet werden (0 setzen!)");
170                                 break;
171
172                         case '0.2.5': // SQL queries for v0.2.5
173                                 // Update notes (these will be set as task text!)
174                                 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> &uuml;berfl&uuml;ssige HTML-Tags entfernt.");
175                                 break;
176
177                         case '0.2.6': // SQL queries for v0.2.6
178                                 // Update notes (these will be set as task text!)
179                                 setExtensionUpdateNotes("Problem mit Jackpot beseitigt ({?POINTS?} wurden nicht gutgeschrieben.)");
180                                 break;
181
182                         case '0.2.7': // SQL queries for v0.2.7
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.8': // SQL queries for v0.2.8
188                                 // Update notes (these will be set as task text!)
189                                 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
190                                 break;
191
192                         case '0.2.9': // SQL queries for v0.2.9
193                                 // Update notes (these will be set as task text!)
194                                 setExtensionUpdateNotes("Mailbetreffs korregiert.");
195                                 break;
196
197                         case '0.3.0': // SQL queries for v0.3.0
198                                 // Update notes (these will be set as task text!)
199                                 setExtensionUpdateNotes("Template <u>admin_config_autopurge_pro.tpl</u> ist &uuml;berfl&uuml;ssig geworden. Bitte l&ouml;schen Sie dies!");
200                                 break;
201
202                         case '0.3.1': // SQL queries for v0.3.1
203                                 // Update notes (these will be set as task text!)
204                                 setExtensionUpdateNotes("Datumsformat festgelegt auf ausf&uuml;hrlich.");
205                                 break;
206
207                         case '0.3.2': // SQL queries for v0.3.2
208                                 // Update notes (these will be set as task text!)
209                                 setExtensionUpdateNotes("W&ouml;rter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
210                                 break;
211
212                         case '0.3.3': // SQL queries for v0.3.3
213                                 addConfigAddSql('ap_del_mails', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
214                                 addConfigAddSql('ap_dm_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
215                                 addConfigAddSql('ap_dm_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}');
216
217                                 // Update notes (these will be set as task text!)
218                                 setExtensionUpdateNotes("Von bereits gel&ouml;schten Mitgliedern die Mails l&ouml;schen integriert.");
219                                 break;
220
221                         case '0.3.4': // SQL queries for v0.3.4
222                                 // Update notes (these will be set as task text!)
223                                 setExtensionUpdateNotes("Fehler mit <strong>timestamp_send</strong> (Zeile 308) beseitigt.");
224                                 break;
225
226                         case '0.3.5': // SQL queries for v0.3.5
227                                 // Update notes (these will be set as task text!)
228                                 setExtensionUpdateNotes("Fehler mit <strong>ap_del_emails</strong> (Einstellungen im Admin-Bereich) beseitigt.");
229                                 break;
230
231                         case '0.3.6': // SQL queries for v0.3.6
232                                 // Update notes (these will be set as task text!)
233                                 setExtensionUpdateNotes("Die Accounts der Standard-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.");
234                                 break;
235
236                         case '0.3.7': // SQL queries for v0.3.7
237                                 // Update notes (these will be set as task text!)
238                                 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
239                                 break;
240
241                         case '0.3.8': // SQL queries for v0.3.8
242                                 // Update notes (these will be set as task text!)
243                                 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
244                                 break;
245
246                         case '0.3.9': // SQL queries for v0.3.9
247                                 // Update notes (these will be set as task text!)
248                                 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.");
249                                 break;
250
251                         case '0.4.0': // SQL queries for v0.4.0
252                                 // Update notes (these will be set as task text!)
253                                 setExtensionUpdateNotes("Template-Problem beseitigt. Dies verhinderte das Abspeichern der Einstellungen.");
254                                 break;
255                 } // END - switch
256                 break;
257
258         case 'modify': // When the extension got modified
259                 break;
260
261         case 'test': // For testing purposes
262                 break;
263
264         case 'init': // Do stuff when extension is initialized
265                 break;
266
267         default: // Unknown extension mode
268                 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
269                 break;
270 } // END - switch
271
272 // [EOF]
273 ?>