Some SQLs rewritten, unneccessary parameter removed
[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  * 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                         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&ouml;schung','Automatisch inaktive oder nicht best&auml;tigte Accounts l&ouml;schen.',12);
91                                 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);
92                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `ap_notified` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
93
94                                 // Update notes (these will be set as task text!)
95                                 setExtensionUpdateNotes("Automatisches L&ouml:schen von inaktiven bzw. nicht best&auml;tigten Accounts hinzugef&uuml;gt.");
96                                 break;
97
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&ouml;schen von als zu l&ouml;schen markierte Tasks hinzugef&uuml;gt.");
101                                 break;
102
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.");
106                                 break;
107
108                         case '0.1.5': // SQL queries for v0.1.5
109                                 // Update notes (these will be set as task text!)
110
111                                 setExtensionUpdateNotes("Anstelle von <strong>ref_depth</strong> wurde <strong>level</strong> programmiert.");
112                                 break;
113
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.");
117                                 break;
118
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.");
122                                 break;
123
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.");
127                                 break;
128
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)."'");
132
133                                 // Update notes (these will be set as task text!)
134                                 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>");
135                                 break;
136
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'");
141
142                                 // Update notes (these will be set as task text!)
143                                 setExtensionUpdateNotes("Mail wird bei L&ouml;schung von Aufgaben ausgesendet.<br /><br /><u>Bitte aktualisieren Sie auch die Admin-Templates!</u>");
144                                 break;
145
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.");
149                                 break;
150
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&uuml;r gel&ouml;schte Aufgaben korregiert.");
154                                 break;
155
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.");
159                                 break;
160
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&ouml;schung von Best&auml;tigungslinks kann unter &quot;Sonstige Einstellungen&quot; abgeschaltet werden (0 setzen!)");
164                                 break;
165
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> &uuml;berfl&uuml;ssige HTML-Tags entfernt.");
169                                 break;
170
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.)");
174                                 break;
175
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.");
179                                 break;
180
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.");
184                                 break;
185
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.");
189                                 break;
190
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 &uuml;berfl&uuml;ssig geworden. Bitte l&ouml;schen Sie dies!");
194                                 break;
195
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&uuml;hrlich.");
199                                 break;
200
201                         case '0.3.2': // SQL queries for v0.3.2
202                                 // Update notes (these will be set as task text!)
203                                 setExtensionUpdateNotes("W&ouml;rter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
204                                 break;
205
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'");
210
211                                 // Update notes (these will be set as task text!)
212                                 setExtensionUpdateNotes("Von bereits gel&ouml;schten Mitgliedern die Mails l&ouml;schen integriert.");
213                                 break;
214
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.");
218                                 break;
219
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.");
223                                 break;
224
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&ouml;scht und tauchen auch unterhalb der Inaktiven-Liste nicht mehr auf.");
228                                 break;
229
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.");
233                                 break;
234
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.");
238                                 break;
239
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&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.");
243                                 break;
244
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.");
248                                 break;
249                 }
250                 break;
251
252         case 'modify': // When the extension got modified
253                 break;
254
255         case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
256                 break;
257
258         case 'init': // Do stuff when extension is initialized
259                 break;
260
261         default: // Unknown extension mode
262                 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s detected.", getExtensionMode()));
263                 break;
264 }
265
266 // [EOF]
267 ?>