a6dc4dc643c6f1e18c1c7b36323922d7c1960933
[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, 2010 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.1.0' and so on)
47 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'));
48
49 // Keep this extension always active!
50 setExtensionAlwaysActive('Y');
51
52 switch (getExtensionMode()) {
53         case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
54                 // Add dependency to 'bonus'
55                 addExtensionDependency('bonus');
56
57                 // SQL commands to run
58                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` MODIFY data_type ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE','DELETED') NOT NULL DEFAULT 'TEMP'");
59                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` MODIFY 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` MODIFY data_type ENUM('TEMP','SEND','NEW','ADMIN','ACTIVE') NOT NULL DEFAULT 'TEMP'");
65                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` MODIFY 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                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `autopurge_inactive` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
88                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `autopurge_unconfirmed` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
89                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_inactive_since` BIGINT(20) UNSIGNED NOT NULL DEFAULT '2592000'");
90                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_inactive_time` BIGINT(20) UNSIGNED NOT NULL DEFAULT '25200'");
91                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `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.4': // SQL queries for v0.1.4
106                                 // Update notes (these will be set as task text!)
107                                 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.");
108                                 break;
109
110                         case '0.1.5': // SQL queries for v0.1.5
111                                 // Update notes (these will be set as task text!)
112
113                                 setExtensionUpdateNotes("Anstelle von <strong>ref_depth</strong> wurde <strong>level</strong> programmiert.");
114                                 break;
115
116                         case '0.1.6': // SQL queries for v0.1.6
117                                 // Update notes (these will be set as task text!)
118                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
119                                 break;
120
121                         case '0.1.7': // SQL queries for v0.1.7
122                                 // Update notes (these will be set as task text!)
123                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
124                                 break;
125
126                         case '0.1.8': // SQL queries for v0.1.8
127                                 // Update notes (these will be set as task text!)
128                                 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
129                                 break;
130
131                         case '0.1.9': // SQL queries for v0.1.9
132                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `autopurge_tasks` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
133                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_tasks_time` BIGINT(20) UNSIGNED NOT NULL DEFAULT '".(getOneDay()*7)."'");
134
135                                 // Update notes (these will be set as task text!)
136                                 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>");
137                                 break;
138
139                         case '0.2.0': // SQL queries for v0.2.0
140                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_in_notify` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
141                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_un_notify` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
142                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_tasks_notify` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
143
144                                 // Update notes (these will be set as task text!)
145                                 setExtensionUpdateNotes("Mail wird bei L&ouml;schung von Aufgaben ausgesendet.<br /><br /><u>Bitte aktualisieren Sie auch die Admin-Templates!</u>");
146                                 break;
147
148                         case '0.2.1': // SQL queries for v0.2.1
149                                 // Update notes (these will be set as task text!)
150                                 setExtensionUpdateNotes("Diverse angebundene Erweiterungen gefixt.");
151                                 break;
152
153                         case '0.2.2': // SQL queries for v0.2.2
154                                 // Update notes (these will be set as task text!)
155                                 setExtensionUpdateNotes("Betreffzeile f&uuml;r gel&ouml;schte Aufgaben korregiert.");
156                                 break;
157
158                         case '0.2.3': // SQL queries for v0.2.3
159                                 // Update notes (these will be set as task text!)
160                                 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
161                                 break;
162
163                         case '0.2.4': // SQL queries for v0.2.4
164                                 // Update notes (these will be set as task text!)
165                                 setExtensionUpdateNotes("Auto-L&ouml;schung von Best&auml;tigungslinks kann unter &quot;Sonstige Einstellungen&quot; abgeschaltet werden (0 setzen!)");
166                                 break;
167
168                         case '0.2.5': // SQL queries for v0.2.5
169                                 // Update notes (these will be set as task text!)
170                                 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> &uuml;berfl&uuml;ssige HTML-Tags entfernt.");
171                                 break;
172
173                         case '0.2.6': // SQL queries for v0.2.6
174                                 // Update notes (these will be set as task text!)
175                                 setExtensionUpdateNotes("Problem mit Jackpot beseitigt ({?POINTS?} wurden nicht gutgeschrieben.)");
176                                 break;
177
178                         case '0.2.7': // SQL queries for v0.2.7
179                                 // Update notes (these will be set as task text!)
180                                 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
181                                 break;
182
183                         case '0.2.8': // SQL queries for v0.2.8
184                                 // Update notes (these will be set as task text!)
185                                 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
186                                 break;
187
188                         case '0.2.9': // SQL queries for v0.2.9
189                                 // Update notes (these will be set as task text!)
190                                 setExtensionUpdateNotes("Mailbetreffs korregiert.");
191                                 break;
192
193                         case '0.3.0': // SQL queries for v0.3.0
194                                 // Update notes (these will be set as task text!)
195                                 setExtensionUpdateNotes("Template <u>admin_config_autopurge_pro.tpl</u> ist &uuml;berfl&uuml;ssig geworden. Bitte l&ouml;schen Sie dies!");
196                                 break;
197
198                         case '0.3.1': // SQL queries for v0.3.1
199                                 // Update notes (these will be set as task text!)
200                                 setExtensionUpdateNotes("Datumsformat festgelegt auf ausf&uuml;hrlich.");
201                                 break;
202
203                         case '0.3.2': // SQL queries for v0.3.2
204                                 // Update notes (these will be set as task text!)
205                                 setExtensionUpdateNotes("W&ouml;rter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
206                                 break;
207
208                         case '0.3.3': // SQL queries for v0.3.3
209                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_del_mails` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
210                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_dm_notify` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
211                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ap_dm_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT '86400'");
212
213                                 // Update notes (these will be set as task text!)
214                                 setExtensionUpdateNotes("Von bereits gel&ouml;schten Mitgliedern die Mails l&ouml;schen integriert.");
215                                 break;
216
217                         case '0.3.4': // SQL queries for v0.3.4
218                                 // Update notes (these will be set as task text!)
219                                 setExtensionUpdateNotes("Fehler mit <strong>timestamp_send</strong> (Zeile 308) beseitigt.");
220                                 break;
221
222                         case '0.3.5': // SQL queries for v0.3.5
223                                 // Update notes (these will be set as task text!)
224                                 setExtensionUpdateNotes("Fehler mit <strong>ap_del_emails</strong> (Einstellungen im Admin-Bereich) beseitigt.");
225                                 break;
226
227                         case '0.3.6': // SQL queries for v0.3.6
228                                 // Update notes (these will be set as task text!)
229                                 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.");
230                                 break;
231
232                         case '0.3.7': // SQL queries for v0.3.7
233                                 // Update notes (these will be set as task text!)
234                                 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
235                                 break;
236
237                         case '0.3.8': // SQL queries for v0.3.8
238                                 // Update notes (these will be set as task text!)
239                                 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
240                                 break;
241
242                         case '0.3.9': // SQL queries for v0.3.9
243                                 // Update notes (these will be set as task text!)
244                                 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.");
245                                 break;
246
247                         case '0.4.0': // SQL queries for v0.4.0
248                                 // Update notes (these will be set as task text!)
249                                 setExtensionUpdateNotes("Template-Problem beseitigt. Dies verhinderte das Abspeichern der Einstellungen.");
250                                 break;
251                 }
252                 break;
253
254         case 'modify': // When the extension got modified
255                 break;
256
257         case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
258                 break;
259
260         case 'init': // Do stuff when extension is initialized
261                 break;
262
263         default: // Unknown extension mode
264                 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
265                 break;
266 }
267
268 // [EOF]
269 ?>