ext-network continued, documentation updated, stelzi's fix integrated:
[mailer.git] / inc / extensions / ext-network.php
1 <?php
2 /************************************************************************
3  * Mailer v0.2.1-FINAL                                Start: 12/18/2008 *
4  * ===================                          Last change: 11/01/2009 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : ext-network.php                                  *
8  * -------------------------------------------------------------------- *
9  * Short description : Generic (sponsor) network connection extension   *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Allgemeine Werbenetzwerk-Erweiterung             *
12  * -------------------------------------------------------------------- *
13  * $Revision::                                                        $ *
14  * $Date::                                                            $ *
15  * $Tag:: 0.2.1-FINAL                                                 $ *
16  * $Author::                                                          $ *
17  * Needs to be in all Files and every File needs "svn propset           *
18  * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
19  * -------------------------------------------------------------------- *
20  * @TODO Ad-Magnet: Layer(klick?). Layerviews.Skybannerklick/-view,     *
21  * @TODO Ad-Magnet: Banner-View, Textlink-Klick/-View. Page-Peel        *
22  * @TODO ADCocktail: Traffic, BIDausKAS???                              *
23  * @TODO Ads4.de: Traffic                                               *
24  * @TODO Ads4Webbis: Traffic                                            *
25  * @TODO Ads4World: Traffic                                             *
26  * @TODO Affiliblatt: All except banner                                 *
27  * @TODO doubleads: Which charset?                                      *
28  * @TODO Fusion-Ads: Has click/banner URL in API response               *
29  * @TODO GolloX: Which charset?                                         *
30  * @TODO homeADS: Which charset?                                        *
31  * @TODO make-euros: Which charset?                                     *
32  * @TODO paid4ad: Waiting for approval                                  *
33  * -------------------------------------------------------------------- *
34  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
35  * For more information visit: http://www.mxchange.org                  *
36  *                                                                      *
37  * This program is free software; you can redistribute it and/or modify *
38  * it under the terms of the GNU General Public License as published by *
39  * the Free Software Foundation; either version 2 of the License, or    *
40  * (at your option) any later version.                                  *
41  *                                                                      *
42  * This program is distributed in the hope that it will be useful,      *
43  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
44  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
45  * GNU General Public License for more details.                         *
46  *                                                                      *
47  * You should have received a copy of the GNU General Public License    *
48  * along with this program; if not, write to the Free Software          *
49  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
50  * MA  02110-1301  USA                                                  *
51  ************************************************************************/
52
53 // Some security stuff...
54 if (!defined('__SECURITY')) {
55         die();
56 } // END - if
57
58 // Version number
59 setThisExtensionVersion('0.0');
60
61 // Version history array (add more with , '0.1.0' and so on)
62 setExtensionVersionHistory(array('0.0'));
63
64 // This extension is in development (non-productive)
65 enableExtensionProductive(false);
66
67 switch (getExtensionMode()) {
68         case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
69                 // Main table which hold
70                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_data`');
71                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_data` (
72 `network_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
73 `network_short_name` VARCHAR(50) NOT NULL DEFAULT '',
74 `network_title` VARCHAR(255) NOT NULL DEFAULT '',
75 `network_reflink` VARCHAR(255) NOT NULL DEFAULT '',
76 `network_data_seperator` CHAR(4) NOT NULL DEFAULT '|',
77 `network_row_seperator` CHAR(4) NOT NULL DEFAULT '|',
78 `network_request_type` ENUM('GET','POST') NOT NULL DEFAULT 'GET',
79 `network_charset` VARCHAR(20) NOT NULL DEFAULT 'UTF-8',
80 UNIQUE (`network_short_name`),
81 PRIMARY KEY (`network_id`)
82 ) TYPE={?_TABLE_TYPE?} COMMENT='Network data'");
83
84                 // Types the network provider is supporting (e.g. Forced-Banner and so on)
85                 // @TODO network_type_handle is an internal name and needs documentation
86                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_types`');
87                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_types` (
88 `network_type_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
89 `network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
90 `network_type_handle` VARCHAR(255) NOT NULL DEFAULT '',
91 `network_type_api_url` VARCHAR(255) NOT NULL DEFAULT '',
92 `network_type_click_url` VARCHAR(255) NOT NULL DEFAULT '',
93 `network_type_banner_url` VARCHAR(255) NOT NULL DEFAULT '',
94 `network_param_default` VARCHAR(255) NULL DEFAULT NULL,
95 UNIQUE `provider_type` (`network_id`,`network_type_handle`),
96 PRIMARY KEY (`network_type_id`)
97 ) TYPE={?_TABLE_TYPE?} COMMENT='Types provideable by networks'");
98
99                 // HTTP parameters (names) for URLs
100                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_request_params`');
101                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_request_params` (
102 `network_param_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
103 `network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
104 `network_type_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
105 `request_param_key` VARCHAR(10) NOT NULL DEFAULT 'invalid',
106 `request_param_value` VARCHAR(10) NOT NULL DEFAULT 'invalid',
107 `request_param_default` VARCHAR(10) NULL DEFAULT NULL,
108 UNIQUE `provider_type_key` (`network_id`,`network_type_id`,`request_param_key`),
109 UNIQUE `provider_type_value` (`network_id`,`network_type_id`,`request_param_value`),
110 PRIMARY KEY (`network_param_id`)
111 ) TYPE={?_TABLE_TYPE?} COMMENT='Request parameters for GET/POST request'");
112
113                 // Error status codes
114                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_type_codes`');
115                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_type_codes` (
116 `network_type_code_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
117 `network_type_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
118 `network_type_code_value` VARCHAR(50) NOT NULL DEFAULT '',
119 `network_type_code_type` VARCHAR(100) NOT NULL DEFAULT 'INVALID_TYPE',
120 UNIQUE `code_type` (`network_type_code_value`,`network_type_id`),
121 INDEX (`network_type_id`),
122 PRIMARY KEY (`network_type_code_id`)
123 ) TYPE={?_TABLE_TYPE?} COMMENT='Error codes for all types'");
124
125                 // Code types (internal table)
126                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_codes`');
127                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_codes` (
128 `network_code_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
129 `network_code` VARCHAR(100) NOT NULL DEFAULT 'INVALID_CODE',
130 UNIQUE (`network_code`),
131 PRIMARY KEY (`network_code_id`)
132 ) TYPE={?_TABLE_TYPE?} COMMENT='Error types, generic data, DO NOT ALTER!'");
133
134                 // Valid translation keys (we hate hard-coded arrays, you see?)
135                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_translations`');
136                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_translations` (
137 `network_translate_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
138 `network_type_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
139 `network_translation` VARCHAR(100) NOT NULL DEFAULT '',
140 UNIQUE `type_trans` (`network_type_id`,`network_translation`),
141 PRIMARY KEY (`network_translate_id`)
142 ) TYPE={?_TABLE_TYPE?} COMMENT='Translations for array keys, generic data, DO NOT ALTER!'");
143
144                 // Array-Element translation tables per type/provider
145                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_array_translation`');
146                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_array_translation` (
147 `network_translate_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
148 `network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
149 `network_type_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
150 `network_array_key` SMALLINT(5) UNSIGNED NOT NULL DEFAULT 0,
151 `network_translation` VARCHAR(100) NOT NULL DEFAULT '',
152 UNIQUE `provider_type_key` (`network_id`,`network_type_id`,`network_array_key`),
153 UNIQUE `provider_type_trans` (`network_id`,`network_type_id`,`network_translation`),
154 PRIMARY KEY (`network_translate_id`)
155 ) TYPE={?_TABLE_TYPE?} COMMENT='Cache for all queried APIs'");
156
157                 // Data from the webmaster (you!)
158                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_config`');
159                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_config` (
160 `network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
161 `network_affiliate_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
162 `network_api_password` VARCHAR(255) NOT NULL DEFAULT '',
163 `network_site_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
164 `network_query_amount` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
165 UNIQUE `network_affiliate` (`network_id`,`network_affiliate_id`),
166 UNIQUE `affiliate_site` (`network_affiliate_id`,`network_site_id`),
167 PRIMARY KEY (`network_id`)
168 ) TYPE={?_TABLE_TYPE?} COMMENT='Configuration data from the webmaster (you!)'");
169
170                 // Configuration data for e.g. reload-time
171                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_types_config`');
172                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_types_config` (
173 `network_data_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
174 `network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
175 `network_type_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
176 `max_reload_time` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
177 `min_waiting_time` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
178 `min_remain_clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
179 `min_payment` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
180 `allow_erotic` VARCHAR(10) NOT NULL DEFAULT '',
181 UNIQUE `provider_type` (`network_id`,`network_type_id`),
182 PRIMARY KEY (`network_data_id`)
183 ) TYPE={?_TABLE_TYPE?} COMMENT='Configuration data for every type (e.g. reload-time)'");
184
185                 // Cache for queried APIs. Re-check depends on config
186                 // `network_cache_refresh` in seconds or if set to zero, full day
187                 // divided by query amount.
188                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_cache`');
189                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_cache` (
190 `network_cache_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
191 `network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
192 `network_type_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
193 `network_cache_data` MEDIUMBLOB,
194 `network_cache_timestamp` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00',
195 UNIQUE `provider_type` (`network_id`,`network_type_id`),
196 PRIMARY KEY (`network_cache_id`)
197 ) TYPE={?_TABLE_TYPE?} COMMENT='Cache for all queried APIs'");
198
199                 // Reload locks for several types
200                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_reloads`');
201                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_network_reloads` (
202 `network_reload_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
203 `network_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
204 `network_type_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
205 `network_reload_lock` SMALLINT(5) UNSIGNED NOT NULL DEFAULT 0,
206 `network_inserted` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(),
207 UNIQUE `provider_type` (`network_id`,`network_type_id`),
208 PRIMARY KEY (`network_reload_id`)
209 ) TYPE={?_TABLE_TYPE?} COMMENT='Reload locks'");
210
211                 // Insert error code types
212                 // - Affiliate id or interface password wrong
213                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_codes` (`network_code`) VALUES ('AFF_ID_PASS_WRONG')");
214                 // - Webmaster's site id is not assigned (invalid, different affiliate id)
215                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_codes` (`network_code`) VALUES ('SITE_ID_NOT_ASSIGNED')");
216                 // - Webmaster's site id is locked
217                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_codes` (`network_code`) VALUES ('SITE_ID_LOCKED')");
218                 // - General error in interface data
219                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_codes` (`network_code`) VALUES ('INTERFACE_DATA_ERROR')");
220                 // - Request amount depleted
221                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_codes` (`network_code`) VALUES ('REQUESTS_DEPLETED')");
222                 // - No campaigns found for given criteria (but maybe there are with more widen criteria)
223                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_codes` (`network_code`) VALUES ('NO_CAMPAIGNS_FOUND')");
224                 // - No campaigns found with allowed interface output (but there are maybe non-interface campaigns)
225                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_codes` (`network_code`) VALUES ('NO_CAMPAIGNS_FOUND_INTERFACE')");
226                 // - Webmaster's site id is not unlocked for choosen type
227                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_codes` (`network_code`) VALUES ('SITE_ID_NOT_ALLOWED_TYPE')");
228                 // - Request parameters incomplete
229                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_codes` (`network_code`) VALUES ('REQUEST_PARAMS_INCOMPLETE')");
230
231                 // Sponsor networks
232                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_data` (`network_short_name`, `network_title`, `network_reflink`, `network_data_seperator`, `network_row_seperator`, `network_request_type`, `network_charset`) VALUES ('yoomedia', 'Yoo!Media Solutions', 'http://www.yoomedia.de?ref=1715', '|', '|', 'GET', 'WINDOWS-1252')");
233
234                 // Network type handlers - Yoo!Media (Please use http://www.yoomedia.de?ref=1715 for signing up)
235                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_types` (`network_id`,`network_type_handle`,`network_type_api_url`,`network_type_click_url`,`network_type_banner_url`) VALUES (1, 'banner', 'http://www.yoomedia.de/interface_2.0/out_banner.php', 'http://www.yoomedia.de/code/z-bannerklf.php?id=%ID%&sid=%SID%', 'http://www.yoomedia.de/code/z-banner.php?id=%ID%&sid=%SID%&bid=%BID%'),
236 (1, 'surfbar', 'http://www.yoomedia.de/interface_2.0/out_sbanner.php', 'http://www.yoomedia.de/code/s-bannerklf.php?id=%ID%&sid=%SID%', 'http://www.yoomedia.de/code/s-banner.php?id=%ID%&sid=%SID%&bid=%BID%'),
237 (1, 'focredbanner', 'http://www.yoomedia.de/interface_2.0/out_fbanner.php', 'http://www.yoomedia.de/code/f-bannerklf.php?id=%ID%&sid=%SID%', 'http://www.yoomedia.de/code/f-banner.php?id=%ID%&sid=%SID%&bid=%BID%'),
238 (1, 'textlink', 'http://www.yoomedia.de/interface_2.0/out_textlink.php', 'http://www.yoomedia.de/code/t-textlink.php?id=%ID%&sid=%SID%', ''),
239 (1, 'layer', 'http://www.yoomedia.de/interface_2.0/out_layer.php', 'http://www.yoomedia.de/code/l-layer.php?id=%ID%&sid=%SID%', ''),
240 (1, 'popup', 'http://www.yoomedia.de/interface_2.0/out_popup.php', 'http://www.yoomedia.de/code/p-popup.php?id=%ID%&sid=%SID%', ''),
241 (1, 'popdown', 'http://www.yoomedia.de/interface_2.0/out_popdown.php', 'http://www.yoomedia.de/code/p-popdown.php?id=%ID%&sid=%SID%', ''),
242 (1, 'textmail', 'http://www.yoomedia.de/interface_2.0/out_textmail.php', 'http://www.yoomedia.de/code/t-mail.php?id=%ID%&sid=%SID%', ''),
243 (1, 'htmlmail', 'http://www.yoomedia.de/interface_2.0/out_htmlmail.php', 'http://www.yoomedia.de/code/h-mail.php?id=%ID%&sid=%SID%', ''),
244 (1, 'lead', 'http://www.yoomedia.de/interface_2.0/out_lead.php', 'http://www.yoomedia.de/code/lead.php?id=%ID%&sid=%SID%', ''),
245 (1, 'pagepeel', 'http://www.yoomedia.de/interface_2.0/out_pagepeel.php', 'http://www.yoomedia.de/code/p-peel.php?id=%ID%&sid=%SID%', '')");
246
247                 // Request parameters per type handler - Yoo!Media
248                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_request_params` (`network_id`,`network_type_id`,`request_param_key`,`request_param_value`) VALUES (1, 1, 'id', 'id'),
249 (1, 1, 'sid', 'sid'),
250 (1, 1, 'password', 'pw'),
251 (1, 1, 'reload', 'reload'),
252 (1, 1, 'remain', 'uebrig'),
253 (1, 1, 'reward', 'verguetung'),
254 (1, 1, 'size', 'size'),
255 (1, 1, 'erotic', 'erotik')");
256                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_request_params` (`network_id`,`network_type_id`,`request_param_key`,`request_param_value`) VALUES (1, 3, 'id', 'id'),
257 (1, 3, 'sid', 'sid'),
258 (1, 3, 'password', 'pw'),
259 (1, 3, 'reload', 'reload'),
260 (1, 3, 'min_stay', 'ma'),
261 (1, 3, 'remain', 'uebrig'),
262 (1, 3, 'reward', 'verguetung'),
263 (1, 3, 'size', 'size'),
264 (1, 3, 'erotic', 'erotik')");
265                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_request_params` (`network_id`,`network_type_id`,`request_param_key`,`request_param_value`) VALUES (1, 9, 'id', 'id'),
266 (1, 9, 'sid', 'sid'),
267 (1, 9, 'password', 'pw'),
268 (1, 9, 'reload', 'reload'),
269 (1, 9, 'min_stay', 'ma'),
270 (1, 9, 'remain', 'uebrig'),
271 (1, 9, 'reward', 'verguetung'),
272 (1, 9, 'erotic', 'erotik')");
273                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_request_params` (`network_id`,`network_type_id`,`request_param_key`,`request_param_value`) VALUES (1, 5, 'id', 'id'),
274 (1, 5, 'sid', 'sid'),
275 (1, 5, 'password', 'pw'),
276 (1, 5, 'reload', 'reload'),
277 (1, 5, 'remain', 'uebrig'),
278 (1, 5, 'reward', 'verguetung'),
279 (1, 5, 'erotic', 'erotik')");
280                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_request_params` (`network_id`,`network_type_id`,`request_param_key`,`request_param_value`) VALUES (1, 10, 'id', 'id'),
281 (1, 10, 'sid', 'sid'),
282 (1, 10, 'password', 'pw'),
283 (1, 10, 'reload', 'reload'),
284 (1, 10, 'remain', 'uebrig'),
285 (1, 10, 'reward', 'verguetung'),
286 (1, 10, 'erotic', 'erotik')");
287                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_request_params` (`network_id`,`network_type_id`,`request_param_key`,`request_param_value`) VALUES (1, 11, 'id', 'id'),
288 (1, 11, 'sid', 'sid'),
289 (1, 11, 'password', 'pw'),
290 (1, 11, 'reload', 'reload'),
291 (1, 11, 'remain', 'uebrig'),
292 (1, 11, 'reward', 'verguetung'),
293 (1, 11, 'erotic', 'erotik')");
294                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_request_params` (`network_id`,`network_type_id`,`request_param_key`,`request_param_value`) VALUES (1, 7, 'id', 'id'),
295 (1, 7, 'sid', 'sid'),
296 (1, 7, 'password', 'pw'),
297 (1, 7, 'reload', 'reload'),
298 (1, 7, 'min_stay', 'ma'),
299 (1, 7, 'remain', 'uebrig'),
300 (1, 7, 'reward', 'verguetung'),
301 (1, 7, 'erotic', 'erotik')");
302                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_request_params` (`network_id`,`network_type_id`,`request_param_key`,`request_param_value`) VALUES (1, 6, 'id', 'id'),
303 (1, 6, 'sid', 'sid'),
304 (1, 6, 'password', 'pw'),
305 (1, 6, 'reload', 'reload'),
306 (1, 6, 'min_stay', 'ma'),
307 (1, 6, 'remain', 'uebrig'),
308 (1, 6, 'reward', 'verguetung'),
309 (1, 6, 'erotic', 'erotik')");
310                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_request_params` (`network_id`,`network_type_id`,`request_param_key`,`request_param_value`) VALUES (1, 2, 'id', 'id'),
311 (1, 2, 'sid', 'sid'),
312 (1, 2, 'password', 'pw'),
313 (1, 2, 'reload', 'reload'),
314 (1, 2, 'remain', 'uebrig'),
315 (1, 2, 'reward', 'verguetung'),
316 (1, 2, 'size', 'size'),
317 (1, 2, 'erotic', 'erotik')");
318                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_request_params` (`network_id`,`network_type_id`,`request_param_key`,`request_param_value`) VALUES (1, 4, 'id', 'id'),
319 (1, 4, 'sid', 'sid'),
320 (1, 4, 'password', 'pw'),
321 (1, 4, 'reload', 'reload'),
322 (1, 4, 'remain', 'uebrig'),
323 (1, 4, 'reward', 'verguetung'),
324 (1, 4, 'erotic', 'erotik')");
325                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_network_request_params` (`network_id`,`network_type_id`,`request_param_key`,`request_param_value`) VALUES (1, 8, 'id', 'id'),
326 (1, 8, 'sid', 'sid'),
327 (1, 8, 'password', 'pw'),
328 (1, 8, 'reload', 'reload'),
329 (1, 8, 'min_stay', 'ma'),
330 (1, 8, 'remain', 'uebrig'),
331 (1, 8, 'reward', 'verguetung'),
332 (1, 8, 'erotic', 'erotik')");
333
334                 // Fix empty defaults to NULL
335                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_network_request_params` SET `request_param_default`=NULL WHERE `request_param_default`=''");
336
337                 // Admin menu entries
338                 addAdminMenuSql('network',NULL,'Werbenetzwerke','Verwalten Sie hier Werbenetzwerke (API-Anbindung), versenden Sie deren Mails, oder &uuml;bernehmen Sie deren Textlinks und vieles mehr. <strong>VORSICHT:</strong> Das Einrichten von weiteren Werbenetzwerken ist nicht leicht, daf&uuml;r aber sehr flexibel! Sollte ein Netzwerk fehlen, so melden Sie dies bitte <a href="http://forum.mxchange.org/topic-462.html" target="_blank" title="Direktlink zum Forum">im Forum</a>!',4);
339                 addAdminMenuSql('network','config_networks','API-Daten','Stellen Sie Ihre Affiliate- Webseiten-Id und API-Passwort ein. Diese erhalten Sie zu &uuml;ber 99% aus dem jeweiligen Zugangsbereich des Anbieters. Sollten Sie bei einem Netzwerk noch nicht angemeldet sein, verwenden Sie bitte meinen Referal-Link.',1);
340                 addAdminMenuSql('network','config_network_types','Werbearten','Stellen Sie hier Reload-Zeiten, Mindestauffenthalt und so weiter pro Werbeart und Werbenetzwerk ein. Es werden sonst Standart-Werte (Mimimumwerte: 0, Maximumwerte: sehr gross, Erotik: aus) angenommen, die Sie meistens nicht wollen.',2);
341                 addAdminMenuSql('network','query_networks','APIs abfragen','Fragt alle eingestellten APIs ab. Die Ergebnisse werden dann f&uuml;r einen einstellbaren Zeitraum gecacht und nicht erneut angefordert.',3);
342                 addAdminMenuSql('network','config_network','Einstellungen','Stellen Sie generelle Einstellungen ein, die f&uuml;r alle Werbenetzwerke gelten, wie z.B. Cache-Erneuerungsinterval. Generell sind aber die Einstellungen in Ordnung, da z.B. sonst Ihre freien Abfragen beim Werbenetzwerk sich zu schnell abbauen.',4);
343                 addAdminMenuSql('network','list_network_reloads','Reload-Sperren','Listen oder l&ouml;schen Sie hier Reload-Sperren. <strong>Vorsicht:</strong> Die hier gespeicherten Reload-Sperren sind vom jeweiligen Werbenetzwerk &uuml;bernommen. Eventuell verdienen Sie nichts, wenn Sie z.B. eine Mail innerhalb der Reload-Sperre erneut versenden.',5);
344                 addAdminMenuSql('network','list_networks','Auflisten/Verwalten','<strong>Experten-Einstellungen!</strong> Hier &auml;ndern Sie die Einstellungen an den Grunddaten (Stammdaten) des jeweiligen Werbenetzwerks ab. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.',6);
345                 addAdminMenuSql('network','list_network_types','Werbearten','<strong>Experten-Einstellungen!</strong> Hier &auml;ndern Sie die Einstellungen zu den Werbearten pro Werbenetzwerken. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.',7);
346                 addAdminMenuSql('network','list_network_params','Abfrageparameter','<strong>Experten-Einstellungen!</strong> Hier stellen Sie die Abfrageparameter (wie sie genannt werden m&uuml;ssen, um das API-Script korrekt aufrufen zu k&ouml;nnen) ein, pro Werbenetzwerk. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.',8);
347                 addAdminMenuSql('network','list_network_code_types','R&uuml;ckgabewerte','<strong>Experten-Einstellungen!</strong> Hier stellen Sie die R&uuml;ckgabewerte ein, die im Falle eines Fehlers pro API-Script kommen k&ouml;nnen. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.',9);
348                 addAdminMenuSql('network','list_network_codes','Fehlercodes','<strong>Experten-Einstellungen!</strong> Hier stellen Sie die Namen von Fehlercodes ein, die Scripte zur&uuml;ckliefern k&ouml;nnen. <strong>Dies sind INTERNE Daten und sollten nur vom Entwicklerteam angepasst werden.</strong> Stellen Sie an diesen Einstellungen bitte nichts um. Sie sollten hier generell nichts einstellen und <a href="http://forum.mxchange.org/forum-43.html" target="_blank" title="Direktlink zum Forum">im Forum</a> um Hilfe fragen, wenn Sie selber ein Werbenetzwerk einrichten m&ouml;chten.',10);
349
350                 // Configuration entries
351                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `network_cache_refresh` BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (60 * 15) . '');
352                 break;
353
354         case 'remove': // Do stuff when removing extension
355                 // SQL commands to run
356                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_data`');
357                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_types`');
358                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_request_params`');
359                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_type_codes`');
360                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_translations`');
361                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_array_translation`');
362                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_config`');
363                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_types_config`');
364                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_cache`');
365                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_network_reloads`');
366
367                 // Admin menu
368                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='network'");
369                 break;
370
371         case 'activate': // Do stuff when admin activates this extension
372                 // SQL commands to run
373                 break;
374
375         case 'deactivate': // Do stuff when admin deactivates this extension
376                 // SQL commands to run
377                 break;
378
379         case 'update': // Update an extension
380                 switch (getCurrentExtensionVersion()) {
381                         case '0.0.1': // SQL queries for v0.0.1
382                                 addExtensionSql('');
383
384                                 // Update notes (these will be set as task text!)
385                                 setExtensionUpdateNotes('');
386                                 break;
387                 } // END - switch
388                 break;
389
390         case 'modify': // When the extension got modified
391                 break;
392
393         case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
394                 break;
395
396         case 'init': // Do stuff when extension is initialized
397                 break;
398
399         default: // Unknown extension mode
400                 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s detected.", getExtensionMode()));
401                 break;
402 } // END - switch
403
404 // [EOF]
405 ?>