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