1201a78662424a848e639644a0db3dbe0050a10a
[mailer.git] / inc / extensions / ext-order.php
1 <?php
2 /************************************************************************
3  * MXChange v0.2.1                                    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  *                                                                      *
14  * -------------------------------------------------------------------- *
15  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
16  * For more information visit: http://www.mxchange.org                  *
17  *                                                                      *
18  * This program is free software; you can redistribute it and/or modify *
19  * it under the terms of the GNU General Public License as published by *
20  * the Free Software Foundation; either version 2 of the License, or    *
21  * (at your option) any later version.                                  *
22  *                                                                      *
23  * This program is distributed in the hope that it will be useful,      *
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
26  * GNU General Public License for more details.                         *
27  *                                                                      *
28  * You should have received a copy of the GNU General Public License    *
29  * along with this program; if not, write to the Free Software          *
30  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
31  * MA  02110-1301  USA                                                  *
32  ************************************************************************/
33
34 // Some security stuff...
35 if (!defined('__SECURITY')) {
36         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
37         require($INC);
38 }
39
40 // Version number
41 $EXT_VERSION = "0.5.0";
42
43 // Auto-set extension version
44 if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
45
46 // Version history array (add more with , "0.1" and so on)
47 $EXT_VER_HISTORY = array("0.0", "0.1", "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");
48
49 switch ($EXT_LOAD_MODE)
50 {
51 case "register": // Do stuff when installation is running (modules.php?module=admin&action=login is called)
52         // SQL commands to run
53         $SQLs[] = "";
54         break;
55
56 case "remove": // Do stuff when removing extension
57         // SQL commands to run
58         $SQLs[] = "DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_admin_menu` WHERE what='config_order' LIMIT 1";
59         break;
60
61 case "activate": // Do stuff when admin activates this extension
62         // SQL commands to run
63         $SQLs[] = "UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `visible`='Y', `locked`='N' WHERE what='order' LIMIT 1";
64         $SQLs[] = "UPDATE `{!_MYSQL_PREFIX!}_mod_reg` SET `locked`='N', hidden='N', admin_only='N', mem_only='Y' WHERE module='order' LIMIT 1";
65         break;
66
67 case "deactivate": // Do stuff when admin deactivates this extension
68         // SQL commands to run
69         $SQLs[] = "UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `visible`='N', `locked`='Y' WHERE what='order' LIMIT 1";
70         $SQLs[] = "UPDATE `{!_MYSQL_PREFIX!}_mod_reg` SET `visible`='N', `locked`='Y' WHERE module='order' LIMIT 1";
71         break;
72
73 case "update": // Update an extension
74         switch ($EXT_VER)
75         {
76         case "0.1": // SQL queries for v0.1
77                 $SQLs[] = "ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD order_max_full ENUM('ORDER','MAX') NOT NULL DEFAULT 'MAX'";
78                 $SQLs[] = "INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`, `what`, `title`, `sort`, `descr`) VALUES ('setup','config_order','Mailbuchungsseite','7','Einstellungen am Mailbuchungsformular.')";
79
80                 // Update notes (these will be set as task text!)
81                 $UPDATE_NOTES = "Maximale Mailbuchungen sind nun vom maximalen Empfang abh&auml;gig.";
82                 break;
83
84         case "0.1.1": // SQL queries for v0.1.1
85                 $SQLs[] = "DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_admin_menu` WHERE what='config_order' LIMIT 1";
86                 $SQLs[] = "INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`, `what`, `title`, `sort`, `descr`) VALUES ('setup','config_order','Mailbuchungsseite','7','Einstellungen am Mailbuchungsformular.')";
87                 $SQLs[] = "ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD mail_orders BIGINT(20) UNSIGNED NOT NULL DEFAULT 0";
88
89                 // Update notes (these will be set as task text!)
90                 $UPDATE_NOTES = "Maximale Mailbuchung vervollst&auml;ndigt (Admin-Bereich und im Buchungsformular selber).";
91                 break;
92
93         case "0.1.3": // SQL queries for v0.1.3
94                 // Update notes (these will be set as task text!)
95                 $UPDATE_NOTES = "Maximale Mailbuchungen repariert (werden nun hochgez&auml;hlt und bei t&auml;glichem Reset auf 0 gesetzt).";
96                 break;
97
98         case "0.1.4": // SQL queries for v0.1.4
99                 // Update notes (these will be set as task text!)
100                 $UPDATE_NOTES = "Dummy-Datenfeld wird wieder gel&ouml;scht, um Probleme zu vermeiden. Fehlende Spalte <em>mail_order</em> korregiert auf <em>mail_orders</em>.";
101                 break;
102
103         case "0.1.5": // SQL queries for v0.1.5
104                 // Update notes (these will be set as task text!)
105                 $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
106                 break;
107
108         case "0.1.6": // SQL queries for v0.1.6
109                 // Update notes (these will be set as task text!)
110                 $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
111                 break;
112
113         case "0.1.7": // SQL queries for v0.1.7
114                 // Update notes (these will be set as task text!)
115                 $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
116                 break;
117
118         case "0.1.8": // SQL queries for v0.1.8
119                 // Update notes (these will be set as task text!)
120                 $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen beseitigt.";
121                 break;
122
123         case "0.1.9": // SQL queries for v0.1.9
124                 // Update notes (these will be set as task text!)
125                 $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
126                 break;
127
128         case "0.2.0": // SQL queries for v0.2.0
129                 // Update notes (these will be set as task text!)
130                 $UPDATE_NOTES = "Seit <a href=\"#\">Patch 340</a> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
131                 break;
132
133         case "0.2.1": // SQL queries for v0.2.1
134                 // Update notes (these will be set as task text!)
135                 $UPDATE_NOTES = "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.";
136                 break;
137
138         case "0.2.2": // SQL queries for v0.2.2
139                 // Update notes (these will be set as task text!)
140                 $UPDATE_NOTES = "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.";
141                 break;
142
143         case "0.2.3": // SQL queries for v0.2.3
144                 $SQLs[] = "ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD order_min BIGINT(20) UNSIGNED NOT NULL DEFAULT 10";
145
146                 // Update notes (these will be set as task text!)
147                 $UPDATE_NOTES = "Minimum an Empf&auml;nger pro Mailbuchung einstellbar. Standart: 10 Empf&auml;nger";
148                 break;
149
150         case "0.2.4": // SQL queries for v0.2.4
151                 // Update notes (these will be set as task text!)
152                 $UPDATE_NOTES = "Anzahl mindestens einszustellende Empf&auml;nger wird nun auch angezeigt.";
153                 break;
154
155         case "0.2.5": // SQL queries for v0.2.5
156                 // Update notes (these will be set as task text!)
157                 $UPDATE_NOTES = "Speicherung der Einstellungen klappt.";
158                 break;
159
160         case "0.2.6": // SQL queries for v0.2.6
161                 // Update notes (these will be set as task text!)
162                 $UPDATE_NOTES = "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
163 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:
164 <ol>
165   <li>Das Mitglied w&auml;hlt eine Kategorie XYZ mit maximal 15 Empf&auml;ngern aus.</li>
166   <li>Es stellt die Mailart <u>&quot;3 {!POINTS!} Kosten / Mail&quot;</u> ein.</li>
167   <li>Es hat aber nur {!POINTS!} f&uuml;r 10 Empf&auml;nger und gibt 10 ein.</li>
168   <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
169   auf.</li>
170   <li>Hatte es aber, wie hier im Beispiel 31 {!POINTS!}, konnte es nicht mehr buchen.</li>
171   <li>Jetzt ist der Fehler endlich weg! Machen Sie dies bitte Ihren Mitgliedern bekannt.</li>
172 </ol>";
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                 $UPDATE_NOTES = "Fehler mit <u>__MIN_VALUE</u> behoben.";
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                 $UPDATE_NOTES = "Konstantenproblem beseitigt.";
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                 $UPDATE_NOTES = "Problem mit nicht funktionierenden Mailbuchungen beseitigt.";
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                 $UPDATE_NOTES = "Basis-Modul <strong>order.php</strong> abgesichert, wenn Erweiterung nicht aktiviert ist.";
193                 break;
194
195         case "0.3.1": // SQL queries for v0.3.1
196                 $SQLs[] = "ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD order_select VARCHAR(255) NOT NULL DEFAULT 'userid'";
197                 $SQLs[] = "ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD order_mode ENUM('ASC','DESC') NOT NULL DEFAULT 'DESC'";
198
199                 // Update notes (these will be set as task text!)
200                 $UPDATE_NOTES = "Beworbene URL wird nun getestet.";
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                 $UPDATE_NOTES = "Datumsformat festgelegt auf ausf&uuml;hrlich.";
206                 break;
207
208         case "0.3.3": // SQL queries for v0.3.3
209                 // Update notes (these will be set as task text!)
210                 $UPDATE_NOTES = "Unter <strong>Einstellungen - Mailbuchungsseite</strong> war immer die Tabellenspalte <strong>Mitgliedsnummer</strong> ausgew&auml;hlt.";
211                 break;
212
213         case "0.3.4": // SQL queries for v0.3.4
214                 // Update notes (these will be set as task text!)
215                 $UPDATE_NOTES = "Dateiamenskonflikt zwischen den Erweiterungen <strong>support</strong> und <strong>order</strong> behoben.";
216                 break;
217
218         case "0.3.5": // SQL queries for v0.3.5
219                 // Update notes (these will be set as task text!)
220                 $UPDATE_NOTES = "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.";
221                 break;
222
223         case "0.3.6": // SQL queries for v0.3.6
224                 // Update notes (these will be set as task text!)
225                 $UPDATE_NOTES = "Im Modul order (<strong>inc/modules/order.php</strong>) wurde fehlerhafterweise die Erweiterung <strong>beg</strong> getestet.";
226                 break;
227
228         case "0.3.7": // SQL queries for v0.3.7
229                 // Update notes (these will be set as task text!)
230                 $UPDATE_NOTES = "SQL-Anweisungen mit SQL_QUERY_ESC() abgesichert.";
231                 break;
232
233         case "0.3.8": // SQL queries for v0.3.8
234                 // Update notes (these will be set as task text!)
235                 $UPDATE_NOTES = "Mailbuchungsseite korregiert.";
236                 break;
237
238         case "0.3.9": // SQL queries for v0.3.9
239                 // Update notes (these will be set as task text!)
240                 $UPDATE_NOTES = "Erneuten Fehler in Mailbuchungsseite behoben.";
241                 break;
242
243         case "0.4.0": // SQL queries for v0.4.0
244                 // Update notes (these will be set as task text!)
245                 $UPDATE_NOTES = POINTS."-Abzug klappt wieder. Danke an Andreman!";
246                 break;
247
248         case "0.4.1": // SQL queries for v0.4.1
249                 // Update notes (these will be set as task text!)
250                 $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
251                 break;
252
253         case "0.4.2": // SQL queries for v0.4.2
254                 // Update notes (these will be set as task text!)
255                 $UPDATE_NOTES = "Vorbereitung auf die neue Mediendaten v0.0.4.";
256                 break;
257
258         case "0.4.3": // SQL queries for v0.4.3
259                 // Update notes (these will be set as task text!)
260                 $UPDATE_NOTES = "Neue Urlaubsschaltung mit integriert.";
261                 break;
262
263         case "0.4.4": // SQL queries for v0.4.4
264                 // Update notes (these will be set as task text!)
265                 $UPDATE_NOTES = "Ein <strong>WHERE ext_active='Y'</strong> tauchte bei einigen Betreibern auf und ist mit dieser Version beseitigt.";
266                 break;
267
268         case "0.4.5": // SQL queries for v0.4.5
269                 // Update notes (these will be set as task text!)
270                 $UPDATE_NOTES = "De-/Aktivieren des mit dieser Erweiterung verkn&uuml;pften Modules eingebunden.";
271                 break;
272
273         case "0.4.6": // SQL queries for v0.4.6
274                 $SQLs[] = "INSERT INTO `{!_MYSQL_PREFIX!}_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('order',NULL,'Mailbuchungen',3,'Y','N')";
275                 $SQLs[] = "INSERT INTO `{!_MYSQL_PREFIX!}_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('order','order2','Framekiller-Mails',2,'Y','N')";
276                 $SQLs[] = "UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET action='order', sort='1', title='Klick-Mails' WHERE what='order' LIMIT 1";
277
278                 // Update notes (these will be set as task text!)
279                 $UPDATE_NOTES = "Mitgliedsmen&uuml; komplett umgebaut.";
280                 break;
281
282         case "0.4.7": // SQL queries for v0.4.7
283                 // Update notes (these will be set as task text!)
284                 $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
285                 break;
286
287         case "0.4.8": // SQL queries for v0.4.8
288                 $SQLs[] = "UPDATE `{!_MYSQL_PREFIX!}_admin_menu` SET title='Mailbuchung' WHERE what='config_order' LIMIT 1";
289
290                 // Update notes (these will be set as task text!)
291                 $UPDATE_NOTES = "Men&uuml;punkt &quot;Mailbuchungsseite&quot; nach &quot;Mailbuchung&quot; umbenannt und weitere Einstellungen aus Sonstige Einstellungen verschoben.";
292                 break;
293
294         case "0.4.9": // SQL queries for v0.4.9
295                 $SQLs[] = "ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD repay_deleted_mails ENUM('REPAY','JACKPOT','SHRED') NOT NULL DEFAULT 'REPAY'";
296
297                 // Update notes (these will be set as task text!)
298                 $UPDATE_NOTES = "Bei L&ouml;schung von Mailbuchungen kann nun global entschieden werden (Einstellungen also), ob die verbliebenen {!POINTS!} wieder gutgeschrieben werden sollen oder in den Jackpot landen.";
299                 break;
300
301         case "0.5.0": // SQL queries for v0.5.0
302                 $SQLs[] = "DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_url_blacklist`";
303                 $SQLs[] = "CREATE TABLE `{!_MYSQL_PREFIX!}_url_blacklist` (
304 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
305 `url` VARCHAR(255) NOT NULL DEFAULT '',
306 `pool_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
307 `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
308 PRIMARY KEY (`id`),
309 INDEX (`pool_id`)
310 ) TYPE=MYISAM COMMENT='URL blacklist'";
311
312                 // Update notes (these will be set as task text!)
313                 $UPDATE_NOTES = "Tabelle f&uuml;r URL-Sperrliste angelegt.";
314                 break;
315         }
316         break;
317
318 case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
319         break;
320
321 default: // Do stuff when extension is loaded
322         // Do daily reset only when installed and extension version is at least 0.1.1
323         if ((isBooleanConstantAndTrue('__DAILY_RESET')) && (isBooleanConstantAndTrue('mxchange_installed')) && (isBooleanConstantAndTrue('mxchange_installed')) && (isBooleanConstantAndTrue('admin_registered')) && (GET_EXT_VERSION("order") >= "0.1.1")) {
324                 // Reset mail order values
325                 $result_ext = SQL_QUERY("UPDATE `{!_MYSQL_PREFIX!}_user_data` SET mail_orders=0 WHERE mail_orders > 0", __FILE__, __LINE__);
326         } // END - if
327         break;
328 }
329
330 //
331 ?>