Introduced wrapper function addCreateTableSql(), fixed parameter order:
[mailer.git] / inc / extensions / ext-payout.php
1 <?php
2 /************************************************************************
3  * Mailer v0.2.1-FINAL                                Start: 04/11/2004 *
4  * ===================                          Last change: 11/15/2004 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : ext-payout.php                                   *
8  * -------------------------------------------------------------------- *
9  * Short description : Payout extension                                 *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Auszahlung-Erweiterung                           *
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 - 2011 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 of this extension
44 setThisExtensionVersion('0.3.8');
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'));
48
49 switch (getExtensionMode()) {
50         case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
51                 // SQL commands to run
52                 addDropTableSql('user_payouts');
53                 addCreateTableSql('user_payouts', "(
54 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
55 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
56 `payout_total` FLOAT(22,3) UNSIGNED NOT NULL DEFAULT '0.000',
57 `target_account` VARCHAR(255) NOT NULL DEFAULT '',
58 `target_bank` VARCHAR(255) NOT NULL DEFAULT '',
59 `payout_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
60 `payout_timestamp` VARCHAR(10) NOT NULL DEFAULT 0,
61 `status` ENUM('NEW','ACCEPTED','REJECTED') NOT NULL DEFAULT 'NEW',
62 INDEX (`userid`),
63 INDEX (`payout_id`),
64 PRIMARY KEY (`id`)
65 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Done user payouts (and status)'");
66                 addDropTableSql('payout_types');
67                 addCreateTableSql('payout_types', "(
68 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
69 `type` VARCHAR(255) NOT NULL DEFAULT '',
70 `rate` FLOAT(22,3) UNSIGNED NOT NULL DEFAULT '0.000',
71 `min_points` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
72 PRIMARY KEY (`id`)
73 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Payout types'");
74                 addAdminMenuSql('setup','config_payouts','Auszahlungen','Auszahlungsarten einstellen, neu anlegen oder l&ouml;schen.',15);
75                 addAdminMenuSql('payouts','list_payouts','Anfragen auflisten','Listet alle Auszahlungsanfragen Ihrer Mitglieder auf.',16);
76                 addMemberMenuSql('main','payout','Auszahlungen','N','N',11);
77                 break;
78
79         case 'remove': // Do stuff when removing extension
80                 // SQL commands to run
81                 addDropTableSql('user_payouts');
82                 addDropTableSql('payout_types');
83                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='payouts'");
84                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='payout'");
85                 break;
86
87         case 'activate': // Do stuff when admin activates this extension
88                 // SQL commands to run
89                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='payout' LIMIT 1");
90                 break;
91
92         case 'deactivate': // Do stuff when admin deactivates this extension
93                 // SQL commands to run
94                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N', `locked`='Y' WHERE `what`='payout' LIMIT 1");
95                 break;
96
97         case 'update': // Update an extension
98                 switch (getCurrentExtensionVersion())
99                 {
100                         case '0.1.2': // SQL queries for v0.1.2
101                                 addAdminMenuSql('payouts', NULL, 'Auszahlungsmanagement','Management der Auszahlungsarten.',8);
102                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `action`='payouts', `title`='Einstellungen' WHERE `action`='setup' AND `what`='config_payouts' LIMIT 1");
103                                 break;
104
105                         case '0.1.3': // SQL queries for v0.1.3
106                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` ADD from_account VARCHAR(255) NOT NULL DEFAULT ''");
107                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` ADD from_pass VARCHAR(255) NOT NULL DEFAULT ''");
108                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` ADD engine_url VARCHAR(255) NOT NULL DEFAULT ''");
109                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` ADD engine_ret_ok VARCHAR(255) NOT NULL DEFAULT ''");
110                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` ADD engine_ret_failed VARCHAR(255) NOT NULL DEFAULT ''");
111                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` ADD pass_enc ENUM('md5','base64','none') NOT NULL DEFAULT 'md5'");
112                                 break;
113
114                         case '0.1.4': // SQL queries for v0.1.4
115                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_payouts` ADD password VARCHAR(255) NOT NULL DEFAULT ''");
116                                 break;
117
118                         case '0.1.5': // SQL queries for v0.1.5
119                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_payouts` ADD target_url LONGTEXT NOT NULL");
120                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_payouts` ADD banner_url LONGTEXT NOT NULL");
121                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_payouts` ADD link_text VARCHAR(30) NOT NULL DEFAULT ''");
122                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` ADD allow_url ENUM('Y','N') NOT NULL DEFAULT 'N'");
123                                 break;
124
125                         case '0.1.6': // SQL queries for v0.1.6
126                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` CHANGE pass_enc pass_enc ENUM('md5','base64','xxx') NOT NULL DEFAULT 'xxx'");
127                                 break;
128
129                         case '0.1.8': // SQL queries for v0.1.8
130                                 // Update notes (these will be set as task text!)
131                                 setExtensionUpdateNotes("Auflistung der Auszahlungen ausgelagert in Template <em>member_payout.tpl</em>.");
132                                 break;
133
134                         case '0.1.9': // SQL queries for v0.1.9
135                                 // Update notes (these will be set as task text!)
136                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
137                                 break;
138
139                         case '0.2.0': // SQL queries for v0.2.0
140                                 // Update notes (these will be set as task text!)
141                                 setExtensionUpdateNotes("5 Nachkommastellen implementiert.");
142                                 break;
143
144                         case '0.2.1': // SQL queries for v0.2.1
145                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_payouts` CHANGE payout_total payout_total FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
146                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` CHANGE rate rate FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
147
148                                 // Update notes (these will be set as task text!)
149                                 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
150
151                         case '0.2.2': // SQL queries for v0.2.2
152                                 // Update notes (these will be set as task text!)
153                                 setExtensionUpdateNotes("Buttons aus Aufgabenauflisten ausgelagert");
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("Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
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("Ausgabe der Auszahlungsm&ouml;glichkeiten im Mitgliedsbereich repariert.");
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("IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt.");
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("Work-Arount-L&ouml;sung zu tempor&auml;ren Problemen mit der Task-Id eingebaut.");
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("Nachricht an Admin bei Auszahlungsanfrage wird endlich versendet.");
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("HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.");
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("Fehler in Auszahlungsfunktion beseitigt, wenn Umrechnungsrate ungleich 1 eingestellt ist.");
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("Abspeichern von Einstellungen repariert.");
204                                 break;
205
206                         case '0.3.3': // SQL queries for v0.3.3
207                                 // Update notes (these will be set as task text!)
208                                 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
209                                 break;
210
211                         case '0.3.4': // SQL queries for v0.3.4
212                                 // Update notes (these will be set as task text!)
213                                 setExtensionUpdateNotes("Anzahl zu &uuml;berweisende {?POINTS?} m&uuml;ssen immer gr&ouml;sser 0 sein, ansonsten bricht das Script mit einer Fehlermeldung an das Mitglied ab.");
214                                 break;
215
216                         case '0.3.5': // SQL queries for v0.3.5
217                                 // Update notes (these will be set as task text!)
218                                 setExtensionUpdateNotes("Sicherheitsupdate f&uuml;r die Include-Befehle.");
219                                 break;
220
221                         case '0.3.6': // SQL queries for v0.3.6
222                                 // Update notes (these will be set as task text!)
223                                 setExtensionUpdateNotes("Hash-Erstellung von <strong>md5()</strong> auf bessere Funktion <strong>generateHash()</strong> umgestellt.");
224                                 break;
225
226                         case '0.3.7': // SQL queries for v0.3.7
227                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Auszahlungsmanagement' WHERE `action`='payouts' AND (`what`='' OR `what` IS NULL) LIMIT 1");
228
229                                 // Update notes (these will be set as task text!)
230                                 setExtensionUpdateNotes("Verwaltung nach Management umgestellt.");
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                                 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
236                                 break;
237                 }
238                 break;
239
240         case 'modify': // When the extension got modified
241                 break;
242
243         case 'test': // For testing purposes
244                 break;
245
246         case 'init': // Do stuff when extension is initialized
247                 break;
248
249         default: // Unknown extension mode
250                 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
251                 break;
252 } // END - switch
253
254 // [EOF]
255 ?>