]> git.mxchange.org Git - mailer.git/blob - inc/extensions/ext-order.php
Introduced new extension ext-blacklist:
[mailer.git] / inc / extensions / ext-order.php
1 <?php
2 /************************************************************************
3  * Mailer v0.2.1-FINAL                                Start: 04/29/2004 *
4  * ===================                          Last change: 11/14/2004 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : ext-order.php                                    *
8  * -------------------------------------------------------------------- *
9  * Short description : Swapped out order system for PRO version         *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Ausgelagertes Buchungssytem fuer PRO-Version     *
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.5.7');
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', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.5.3', '0.5.4', '0.5.5', '0.5.6', '0.5.7'));
48
49 switch (getExtensionMode()) {
50         case 'setup': // Do stuff when installation is running
51                 // SQL commands to run
52                 addMemberMenuSql('order', 'order', 'Mailbuchung', 1);
53                 break;
54
55         case 'remove': // Do stuff when removing extension
56                 // SQL commands to run
57                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='config_order' LIMIT 1");
58                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `action`='order'");
59
60                 // Remove these filters
61                 unregisterFilter(__FILE__, __LINE__, 'get_total_points', 'ORDER_POINTS', TRUE, isExtensionDryRun());
62                 unregisterFilter(__FILE__, __LINE__, 'get_own_points', 'ORDER_POINTS', TRUE, isExtensionDryRun());
63                 unregisterFilter(__FILE__, __LINE__, 'get_locked_points', 'LOCKED_ORDER_POINTS', TRUE, isExtensionDryRun());
64                 unregisterFilter(__FILE__, __LINE__, 'get_all_point_columns', 'GET_ALL_ORDER_POINTS_COLUMN_NAMES', TRUE, isExtensionDryRun());
65                 unregisterFilter(__FILE__, __LINE__, 'user_exclusion_sql', 'ORDER_ZIP_CODE_SQL', TRUE, isExtensionDryRun());
66                 unregisterFilter(__FILE__, __LINE__, 'locked_points_columns_array', 'ORDER_POINTS_COLUMNS', TRUE, isExtensionDryRun());
67                 break;
68
69         case 'activate': // Do stuff when admin activates this extension
70                 // SQL commands to run
71                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y',`locked`='N' WHERE `action`='order'");
72                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `hidden`='N',`locked`='N',`admin_only`='N',`mem_only`='Y' WHERE `module`='order' LIMIT 1");
73                 break;
74
75         case 'deactivate': // Do stuff when admin deactivates this extension
76                 // SQL commands to run
77                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N',`locked`='Y' WHERE `action`='order'");
78                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `hidden`='Y',`locked`='Y' WHERE `module`='order' LIMIT 1");
79                 break;
80
81         case 'update': // Update an extension
82                 switch (getCurrentExtensionVersion()) {
83                         case '0.1.0': // SQL queries for v0.1
84                                 addConfigAddSql('order_max_full', "ENUM('ORDER','MAX') NOT NULL DEFAULT 'MAX'");
85                                 addAdminMenuSql('setup','config_order','Mailbuchungsseite','Einstellungen am Mailbuchungsformular.',7);
86
87                                 // Update notes (these will be set as task text!)
88                                 setExtensionUpdateNotes("Maximale Mailbuchungen sind nun vom maximalen Empfang abh&auml;gig.");
89                                 break;
90
91                         case '0.1.1': // SQL queries for v0.1.1
92                                 addExtensionAddTableColumnSql('user_data', 'mail_orders', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
93
94                                 // Update notes (these will be set as task text!)
95                                 setExtensionUpdateNotes("Maximale Mailbuchung vervollst&auml;ndigt (Admin-Bereich und im Buchungsformular selber).");
96                                 break;
97
98                         case '0.1.3': // SQL queries for v0.1.3
99                                 // Update notes (these will be set as task text!)
100                                 setExtensionUpdateNotes("Maximale Mailbuchungen repariert (werden nun hochgez&auml;hlt und bei t&auml;glichem Reset auf 0 gesetzt).");
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("Dummy-Datenfeld wird wieder gel&ouml;scht, um Probleme zu vermeiden. Fehlende Spalte <span class=\"bad\">mail_order</span> korregiert auf <span class=\"bad\">mail_orders</span>.");
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                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
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                                 // Update notes (these will be set as task text!)
130                                 setExtensionUpdateNotes("Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
131                                 break;
132
133                         case '0.2.0': // SQL queries for v0.2.0
134                                 // Update notes (these will be set as task text!)
135                                 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> &uuml;berfl&uuml;ssige HTML-Tags entfernt.");
136                                 break;
137
138                         case '0.2.1': // SQL queries for v0.2.1
139                                 // Update notes (these will be set as task text!)
140                                 setExtensionUpdateNotes("Templates <u>member_frameset-back.tpl</u> und <u>member_frameset-send.tpl</u> nach <u>member_order_back.tpl</u> und <u>member_order_send.tpl</u> umbenannt.");
141                                 break;
142
143                         case '0.2.2': // SQL queries for v0.2.2
144                                 // Update notes (these will be set as task text!)
145                                 setExtensionUpdateNotes("Es wird nun &uuml;berpr&uuml;ft ob auch gen&uuml;gend Empf&auml;nger eingegeben worden sind und ob auch gen&uuml;gend empfangsbereit sind.");
146                                 break;
147
148                         case '0.2.3': // SQL queries for v0.2.3
149                                 addConfigAddSql('order_min', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10');
150
151                                 // Update notes (these will be set as task text!)
152                                 setExtensionUpdateNotes("Minimum an Empf&auml;nger pro Mailbuchung einstellbar. Standard: 10 Empf&auml;nger");
153                                 break;
154
155                         case '0.2.4': // SQL queries for v0.2.4
156                                 // Update notes (these will be set as task text!)
157                                 setExtensionUpdateNotes("Anzahl mindestens einszustellende Empf&auml;nger wird nun auch angezeigt.");
158                                 break;
159
160                         case '0.2.5': // SQL queries for v0.2.5
161                                 // Update notes (these will be set as task text!)
162                                 setExtensionUpdateNotes("Speicherung der Einstellungen klappt.");
163                                 break;
164
165                         case '0.2.6': // SQL queries for v0.2.6
166                                 // Update notes (these will be set as task text!)
167                                 setExtensionUpdateNotes("Fehler in Mailbuchung behoben: Es wurde beim Ermitteln der n&ouml;tigen {?POINTS?} die maximale Anzahl von Usern in der Kategorie gew&auml;hlt und
168 nicht die vom Mitglied eingegebene. Resultat: Das Script beschwerte sich, der User h&auml;tte nicht gen&uuml;gend {?POINTS?} auf dem Konto. Ein Rechenbeispiel:
169 <ol>
170   <li>Das Mitglied w&auml;hlt eine Kategorie XYZ mit maximal 15 Empf&auml;ngern aus.</li>
171   <li>Es stellt die Mailart <u>&quot;3 {?POINTS?} Kosten / Mail&quot;</u> ein.</li>
172   <li>Es hat aber nur {?POINTS?} f&uuml;r 10 Empf&auml;nger und gibt 10 ein.</li>
173   <li>Das Script hatte bis zu dieser Version 3 {?POINTS?} * <u>15</u> = 45 {?POINTS?} gerechnet, hat das Mitglied mehr oder gleich 45 {?POINTS?}, fiehl dieser Fehler nicht
174   auf.</li>
175   <li>Hatte es aber, wie hier im Beispiel 31 {?POINTS?}, konnte es nicht mehr buchen.</li>
176   <li>Jetzt ist der Fehler endlich weg! Machen Sie dies bitte Ihren Mitgliedern bekannt.</li>
177 </ol>");
178                                 break;
179
180                         case '0.2.7': // SQL queries for v0.2.7
181                                 // Update notes (these will be set as task text!)
182                                 setExtensionUpdateNotes("Fehler mit <u>__MIN_VALUE</u> behoben.");
183                                 break;
184
185                         case '0.2.8': // SQL queries for v0.2.8
186                                 // Update notes (these will be set as task text!)
187                                 setExtensionUpdateNotes("Konstantenproblem beseitigt.");
188                                 break;
189
190                         case '0.2.9': // SQL queries for v0.2.9
191                                 // Update notes (these will be set as task text!)
192                                 setExtensionUpdateNotes("Problem mit nicht funktionierenden Mailbuchungen beseitigt.");
193                                 break;
194
195                         case '0.3.0': // SQL queries for v0.3.0
196                                 // Update notes (these will be set as task text!)
197                                 setExtensionUpdateNotes("Basis-Modul <strong>order.php</strong> abgesichert, wenn Erweiterung nicht aktiviert ist.");
198                                 break;
199
200                         case '0.3.1': // SQL queries for v0.3.1
201                                 addConfigAddSql('order_select', "VARCHAR(255) NOT NULL DEFAULT 'userid'");
202                                 addConfigAddSql('order_mode', "ENUM('ASC','DESC') NOT NULL DEFAULT 'DESC'");
203
204                                 // Update notes (these will be set as task text!)
205                                 setExtensionUpdateNotes("Beworbene URL wird nun getestet.");
206                                 break;
207
208                         case '0.3.2': // SQL queries for v0.3.2
209                                 // Update notes (these will be set as task text!)
210                                 setExtensionUpdateNotes("Datumsformat festgelegt auf ausf&uuml;hrlich.");
211                                 break;
212
213                         case '0.3.3': // SQL queries for v0.3.3
214                                 // Update notes (these will be set as task text!)
215                                 setExtensionUpdateNotes("Unter <strong>Einstellungen - Mailbuchungsseite</strong> war immer die Tabellenspalte <strong>Mitgliedsnummer</strong> ausgew&auml;hlt.");
216                                 break;
217
218                         case '0.3.4': // SQL queries for v0.3.4
219                                 // Update notes (these will be set as task text!)
220                                 setExtensionUpdateNotes("Dateiamenskonflikt zwischen den Erweiterungen <strong>support</strong> und <strong>order</strong> behoben.");
221                                 break;
222
223                         case '0.3.5': // SQL queries for v0.3.5
224                                 // Update notes (these will be set as task text!)
225                                 setExtensionUpdateNotes("Das Mitglied konnte geziehlt die Anzahl Mailbuchungen durch Abspeichern seines Profiles beeinflussen. Der Fehler war eine falsche Tabellenspalte. Dies war <strong>max_mails</strong>, die durch das Mitglieder ver&auml;nderbar ist und zur Festellung der Maximalen Mailbuchungen herangezogen wurde.");
226                                 break;
227
228                         case '0.3.6': // SQL queries for v0.3.6
229                                 // Update notes (these will be set as task text!)
230                                 setExtensionUpdateNotes("Im Modul order (<strong>inc/modules/order.php</strong>) wurde fehlerhafterweise die Erweiterung <strong>beg</strong> getestet.");
231                                 break;
232
233                         case '0.3.7': // SQL queries for v0.3.7
234                                 // Update notes (these will be set as task text!)
235                                 setExtensionUpdateNotes("SQL-Anweisungen mit SQL_QUERY_ESC() abgesichert.");
236                                 break;
237
238                         case '0.3.8': // SQL queries for v0.3.8
239                                 // Update notes (these will be set as task text!)
240                                 setExtensionUpdateNotes("Mailbuchungsseite korregiert.");
241                                 break;
242
243                         case '0.3.9': // SQL queries for v0.3.9
244                                 // Update notes (these will be set as task text!)
245                                 setExtensionUpdateNotes("Erneuten Fehler in Mailbuchungsseite behoben.");
246                                 break;
247
248                         case '0.4.0': // SQL queries for v0.4.0
249                                 // Update notes (these will be set as task text!)
250                                 setExtensionUpdateNotes("{?POINTS?}-Abzug klappt wieder. Danke an Andreman!");
251                                 break;
252
253                         case '0.4.1': // SQL queries for v0.4.1
254                                 // Update notes (these will be set as task text!)
255                                 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
256                                 break;
257
258                         case '0.4.2': // SQL queries for v0.4.2
259                                 // Update notes (these will be set as task text!)
260                                 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
261                                 break;
262
263                         case '0.4.3': // SQL queries for v0.4.3
264                                 // Update notes (these will be set as task text!)
265                                 setExtensionUpdateNotes("Neue Urlaubsschaltung mit integriert.");
266                                 break;
267
268                         case '0.4.4': // SQL queries for v0.4.4
269                                 // Update notes (these will be set as task text!)
270                                 setExtensionUpdateNotes("Ein <strong>WHERE &#96;ext_active&#96;='Y'</strong> tauchte bei einigen Betreibern auf und ist mit dieser Version beseitigt.");
271                                 break;
272
273                         case '0.4.5': // SQL queries for v0.4.5
274                                 // Update notes (these will be set as task text!)
275                                 setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verkn&uuml;pften Modules eingebunden.");
276                                 break;
277
278                         case '0.4.6': // SQL queries for v0.4.6
279                                 addMemberMenuSql('order', NULL, 'Mailbuchungen', 3);
280                                 addMemberMenuSql('order', 'order2', 'Framekiller-Mails', 2);
281                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='order',`title`='Klick-Mails',`sort`=1 WHERE `what`='order' LIMIT 1");
282
283                                 // Update notes (these will be set as task text!)
284                                 setExtensionUpdateNotes("Mitgliedsmen&uuml; komplett umgebaut.");
285                                 break;
286
287                         case '0.4.7': // SQL queries for v0.4.7
288                                 // Update notes (these will be set as task text!)
289                                 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
290                                 break;
291
292                         case '0.4.8': // SQL queries for v0.4.8
293                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Mailbuchung' WHERE `what`='config_order' LIMIT 1");
294
295                                 // Update notes (these will be set as task text!)
296                                 setExtensionUpdateNotes("Men&uuml;punkt &quot;Mailbuchungsseite&quot; nach &quot;Mailbuchung&quot; umbenannt und weitere Einstellungen aus Sonstige Einstellungen verschoben.");
297                                 break;
298
299                         case '0.4.9': // SQL queries for v0.4.9
300                                 addConfigAddSql('repay_deleted_mails', "ENUM('REPAY','JACKPOT','SHRED') NOT NULL DEFAULT 'REPAY'");
301
302                                 // Update notes (these will be set as task text!)
303                                 setExtensionUpdateNotes("Bei L&ouml;schung von Mailbuchungen kann nun scripteweit entschieden werden (Einstellungen also), ob die verbliebenen {?POINTS?} wieder gutgeschrieben werden sollen oder in den Jackpot landen.");
304                                 break;
305
306                         case '0.5.0': // SQL queries for v0.5.0
307                                 // Update notes (these will be set as task text!)
308                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
309                                 break;
310
311                         case '0.5.1': // SQL queries for v0.5.1
312                                 // Update notes (these will be set as task text!)
313                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
314                                 break;
315
316                         case '0.5.2': // SQL queries for v0.5.2
317                                 addConfigDropSql('test_text');
318                                 addConfigDropSql('test_subj');
319                                 addConfigAddSql('allow_url_in_text', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
320                                 addConfigAddSql('allow_url_in_subject', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
321
322                                 // Update notes (these will be set as task text!)
323                                 setExtensionUpdateNotes("Inkonsistenz in Konfigurationsnamen korregiert.");
324                                 break;
325
326                         case '0.5.3': // SQL queries for v0.5.3
327                                 addExtensionAddTableColumnSql('user_points', 'order_points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
328                                 addExtensionAddTableColumnSql('user_points', 'locked_order_points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
329
330                                 // This update depends on ext-user
331                                 addExtensionDependency('user');
332
333                                 // Register filters for gathering points
334                                 registerFilter(__FILE__, __LINE__, 'get_total_points', 'ORDER_POINTS', FALSE, TRUE, isExtensionDryRun());
335                                 registerFilter(__FILE__, __LINE__, 'get_own_points', 'ORDER_POINTS', FALSE, TRUE, isExtensionDryRun());
336
337                                 // Update notes (these will be set as task text!)
338                                 setExtensionUpdateNotes("Weiteres Verwendungszwecke &quot;Werbeguthaben&quot; hinzugef&uuml;gt (verschoben von ext-user) und neue Filter zum Zur&uuml;ckliefern des Werbeguthabens hinzugef&uuml;gt.");
339                                 break;
340
341                         case '0.5.4': // SQL queries for v0.5.4
342                                 // Register filter for handling locked points
343                                 registerFilter(__FILE__, __LINE__, 'get_locked_points', 'LOCKED_ORDER_POINTS', FALSE, TRUE, isExtensionDryRun());
344
345                                 // Register filter for all column names
346                                 registerFilter(__FILE__, __LINE__, 'get_all_point_columns', 'GET_ALL_ORDER_POINTS_COLUMN_NAMES', FALSE, TRUE, isExtensionDryRun());
347
348                                 // Update notes (these will be set as task text!)
349                                 setExtensionUpdateNotes("Filter f&uuml;r gesperrtes Werbeguthaben hinzugef&uuml;gt.");
350                                 break;
351
352                         case '0.5.5': // SQL queries for v0.5.5
353                                 // Register filter
354                                 registerFilter(__FILE__, __LINE__, 'user_exclusion_sql', 'ORDER_ZIP_CODE_SQL', FALSE, TRUE, isExtensionDryRun());
355
356                                 // Update notes (these will be set as task text!)
357                                 setExtensionUpdateNotes("Filter f&uuml;r gesperrtes Werbeguthaben hinzugef&uuml;gt.");
358                                 break;
359
360                         case '0.5.6': // SQL queries for v0.5.6
361                                 // Register filter
362                                 registerFilter(__FILE__, __LINE__, 'locked_points_columns_array', 'ORDER_POINTS_COLUMNS', FALSE, TRUE, isExtensionDryRun());
363
364                                 // Update notes (these will be set as task text!)
365                                 setExtensionUpdateNotes("Filter f&uuml;r Spaltenname des gesperrten Werbeguthabens hinzugef&uuml;gt.");
366                                 break;
367
368                         case '0.5.7': // SQL queries for v0.5.7
369                                 addDropTableSql('url_blacklist');
370
371                                 // Update notes (these will be set as task text!)
372                                 setExtensionUpdateNotes("Tabelle f&uuml;r URL-Sperrliste gel&ouml;scht (nach <strong>ext-blacklist</strong> verschoben).");
373                                 break;
374                 } // END - switch
375                 break;
376
377         case 'modify': // When the extension got modified
378                 break;
379
380         case 'test': // For testing purposes
381                 break;
382
383         case 'init': // Do stuff when extension is initialized
384                 break;
385
386         case 'init': // Do stuff when extension is initialized
387                 break;
388
389         default: // Unknown extension mode
390                 reportBug(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
391                 break;
392 } // END - switch
393
394 // [EOF]
395 ?>