2 /************************************************************************
3 * Mailer v0.2.1-FINAL Start: 04/11/2004 *
4 * =================== Last change: 11/15/2004 *
6 * -------------------------------------------------------------------- *
7 * File : ext-payout.php *
8 * -------------------------------------------------------------------- *
9 * Short description : Payout extension *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Auszahlung-Erweiterung *
12 * -------------------------------------------------------------------- *
15 * $Tag:: 0.2.1-FINAL $ *
17 * -------------------------------------------------------------------- *
18 * Copyright (c) 2003 - 2009 by Roland Haeder *
19 * Copyright (c) 2009 - 2011 by Mailer Developer Team *
20 * For more information visit: http://mxchange.org *
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. *
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. *
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, *
36 ************************************************************************/
38 // Some security stuff...
39 if (!defined('__SECURITY')) {
43 // Version of this extension
44 setThisExtensionVersion('0.3.8');
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'));
49 switch (getExtensionMode()) {
50 case 'register': // Do stuff when installation is running
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',
65 'Done user payouts (and status)');
67 addDropTableSql('payout_types');
68 addCreateTableSql('payout_types', "
69 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
70 `type` VARCHAR(255) NOT NULL DEFAULT '',
71 `rate` FLOAT(22,3) UNSIGNED NOT NULL DEFAULT 0.000,
72 `min_points` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
77 addAdminMenuSql('setup','config_payouts','Auszahlungen','Auszahlungsarten einstellen, neu anlegen oder löschen.',15);
78 addAdminMenuSql('payouts','list_payouts','Anfragen auflisten','Listet alle Auszahlungsanfragen Ihrer Mitglieder auf.',16);
81 addMemberMenuSql('main', 'payout', 'Auszahlungen', 11);
84 case 'remove': // Do stuff when removing extension
85 // SQL commands to run
86 addDropTableSql('user_payouts');
87 addDropTableSql('payout_types');
88 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='payouts'");
89 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='payout'");
92 case 'activate': // Do stuff when admin activates this extension
93 // SQL commands to run
94 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y',`locked`='N' WHERE `what`='payout' LIMIT 1");
97 case 'deactivate': // Do stuff when admin deactivates this extension
98 // SQL commands to run
99 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N',`locked`='Y' WHERE `what`='payout' LIMIT 1");
102 case 'update': // Update an extension
103 switch (getCurrentExtensionVersion()) {
104 case '0.1.2': // SQL queries for v0.1.2
105 addAdminMenuSql('payouts', NULL, 'Auszahlungsmanagement','Management der Auszahlungsarten.',8);
106 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `action`='payouts',`title`='Einstellungen' WHERE `action`='setup' AND `what`='config_payouts' LIMIT 1");
109 case '0.1.3': // SQL queries for v0.1.3
110 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` ADD from_account VARCHAR(255) NOT NULL DEFAULT ''");
111 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` ADD from_pass VARCHAR(255) NOT NULL DEFAULT ''");
112 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` ADD engine_url VARCHAR(255) NOT NULL DEFAULT ''");
113 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` ADD engine_ret_ok VARCHAR(255) NOT NULL DEFAULT ''");
114 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` ADD engine_ret_failed VARCHAR(255) NOT NULL DEFAULT ''");
115 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` ADD pass_enc ENUM('md5','base64','none') NOT NULL DEFAULT 'md5'");
118 case '0.1.4': // SQL queries for v0.1.4
119 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_payouts` ADD password VARCHAR(255) NOT NULL DEFAULT ''");
122 case '0.1.5': // SQL queries for v0.1.5
123 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_payouts` ADD target_url LONGTEXT NOT NULL");
124 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_payouts` ADD banner_url LONGTEXT NOT NULL");
125 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_payouts` ADD link_text VARCHAR(30) NOT NULL DEFAULT ''");
126 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` ADD allow_url ENUM('Y','N') NOT NULL DEFAULT 'N'");
129 case '0.1.6': // SQL queries for v0.1.6
130 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` CHANGE `pass_enc` `pass_enc` ENUM('md5','base64','xxx') NOT NULL DEFAULT 'xxx'");
133 case '0.1.8': // SQL queries for v0.1.8
134 // Update notes (these will be set as task text!)
135 setExtensionUpdateNotes("Auflistung der Auszahlungen ausgelagert in Template <span class=\"bad\">member_payout.tpl</span>.");
138 case '0.1.9': // SQL queries for v0.1.9
139 // Update notes (these will be set as task text!)
140 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
143 case '0.2.0': // SQL queries for v0.2.0
144 // Update notes (these will be set as task text!)
145 setExtensionUpdateNotes("5 Nachkommastellen implementiert.");
148 case '0.2.1': // SQL queries for v0.2.1
149 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_payouts` CHANGE `payout_total` `payout_total` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
150 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payout_types` CHANGE `rate` `rate` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
152 // Update notes (these will be set as task text!)
153 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
155 case '0.2.2': // SQL queries for v0.2.2
156 // Update notes (these will be set as task text!)
157 setExtensionUpdateNotes("Buttons aus Aufgabenauflisten ausgelagert");
160 case '0.2.3': // SQL queries for v0.2.3
161 // Update notes (these will be set as task text!)
162 setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
165 case '0.2.4': // SQL queries for v0.2.4
166 // Update notes (these will be set as task text!)
167 setExtensionUpdateNotes("Ausgabe der Auszahlungsmöglichkeiten im Mitgliedsbereich repariert.");
170 case '0.2.5': // SQL queries for v0.2.5
171 // Update notes (these will be set as task text!)
172 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
175 case '0.2.6': // SQL queries for v0.2.6
176 // Update notes (these will be set as task text!)
177 setExtensionUpdateNotes("IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt.");
180 case '0.2.7': // SQL queries for v0.2.7
181 // Update notes (these will be set as task text!)
182 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
185 case '0.2.8': // SQL queries for v0.2.8
186 // Update notes (these will be set as task text!)
187 setExtensionUpdateNotes("Work-Arount-Lösung zu temporären Problemen mit der Task-Id eingebaut.");
190 case '0.2.9': // SQL queries for v0.2.9
191 // Update notes (these will be set as task text!)
192 setExtensionUpdateNotes("Nachricht an Admin bei Auszahlungsanfrage wird endlich versendet.");
195 case '0.3.0': // SQL queries for v0.3.0
196 // Update notes (these will be set as task text!)
197 setExtensionUpdateNotes("HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.");
200 case '0.3.1': // SQL queries for v0.3.1
201 // Update notes (these will be set as task text!)
202 setExtensionUpdateNotes("Fehler in Auszahlungsfunktion beseitigt, wenn Umrechnungsrate ungleich 1 eingestellt ist.");
205 case '0.3.2': // SQL queries for v0.3.2
206 // Update notes (these will be set as task text!)
207 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
210 case '0.3.3': // SQL queries for v0.3.3
211 // Update notes (these will be set as task text!)
212 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
215 case '0.3.4': // SQL queries for v0.3.4
216 // Update notes (these will be set as task text!)
217 setExtensionUpdateNotes("Anzahl zu überweisende {?POINTS?} müssen immer grösser 0 sein, ansonsten bricht das Script mit einer Fehlermeldung an das Mitglied ab.");
220 case '0.3.5': // SQL queries for v0.3.5
221 // Update notes (these will be set as task text!)
222 setExtensionUpdateNotes("Sicherheitsupdate für die Include-Befehle.");
225 case '0.3.6': // SQL queries for v0.3.6
226 // Update notes (these will be set as task text!)
227 setExtensionUpdateNotes("Hash-Erstellung von <strong>md5()</strong> auf bessere Funktion <strong>generateHash()</strong> umgestellt.");
230 case '0.3.7': // SQL queries for v0.3.7
231 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Auszahlungsmanagement' WHERE `action`='payouts' AND (`what`='' OR `what` IS NULL) LIMIT 1");
233 // Update notes (these will be set as task text!)
234 setExtensionUpdateNotes("Verwaltung nach Management umgestellt.");
237 case '0.3.8': // SQL queries for v0.3.8
238 // Update notes (these will be set as task text!)
239 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
244 case 'modify': // When the extension got modified
247 case 'test': // For testing purposes
250 case 'init': // Do stuff when extension is initialized
253 default: // Unknown extension mode
254 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));