Code style changed, ext-user continued:
[mailer.git] / inc / extensions / ext-sponsor.php
1 <?php
2 /************************************************************************
3  * Mailer v0.2.1-FINAL                                Start: 03/22/2004 *
4  * ===================                          Last change: 06/28/2004 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : ext-sponsor.php                                  *
8  * -------------------------------------------------------------------- *
9  * Short description : Sponsor area                                     *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Sponsorenbereich                                 *
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.0.0');
45
46 // Version history array (add more with , '0.0.1' and so on)
47 setExtensionVersionHistory(array('0.0.0'));
48
49 // This extension is in development (non-productive)
50 enableExtensionProductive(FALSE);
51
52 switch (getExtensionMode()) {
53         case 'register': // Do stuff when installation is running
54                 // Try to make it depend on repair
55                 addExtensionDependency('repair');
56
57                 //
58                 // Sponsor data
59                 //
60                 addDropTableSql('sponsor_data');
61                 addCreateTableSql('sponsor_data', "
62 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
63 `company` VARCHAR(255) NOT NULL DEFAULT '',
64 `position` VARCHAR(255) NOT NULL DEFAULT '',
65 `tax_ident` VARCHAR(255) NOT NULL DEFAULT '',
66 `gender` ENUM('M','F','C') NOT NULL DEFAULT 'M',
67 `surname` VARCHAR(255) NOT NULL DEFAULT '',
68 `family` VARCHAR(255) NOT NULL DEFAULT '',
69 `street_nr1` VARCHAR(255) NOT NULL DEFAULT '',
70 `street_nr2` VARCHAR(255) NOT NULL DEFAULT '',
71 `zip` VARCHAR(6) NOT NULL DEFAULT '',
72 `city` VARCHAR(255) NOT NULL DEFAULT '',
73 `country` CHAR(2) NOT NULL DEFAULT 'DE',
74 `phone` VARCHAR(255) NOT NULL DEFAULT '',
75 `fax` VARCHAR(255) NOT NULL DEFAULT '',
76 `cell` VARCHAR(255) NOT NULL DEFAULT '',
77 `email` VARCHAR(255) NOT NULL DEFAULT '',
78 `url` VARCHAR(255) NOT NULL DEFAULT '',
79 `password` VARCHAR(255) NOT NULL DEFAULT '',
80 `remote_addr` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
81 `sponsor_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
82 `last_online` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00',
83 `last_change` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00',
84 `status` ENUM('UNCONFIRMED','PENDING','CONFIRMED','LOCKED') NOT NULL DEFAULT 'UNCONFIRMED',
85 `receive_warnings` ENUM('Y','N') NOT NULL DEFAULT 'Y',
86 `warning_interval` BIGINT(20) UNSIGNED NOT NULL DEFAULT '".(getOneDay()*7)."',
87 `points_amount` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
88 `points_used` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
89 `refid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
90 `ref_count` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
91 `hash` VARCHAR(32) NULL DEFAULT NULL,
92 `last_payment` FLOAT(7,2) UNSIGNED NOT NULL DEFAULT 0.00,
93 `last_currency` VARCHAR(255) NOT NULL DEFAULT '&euro;',
94 PRIMARY KEY (`id`),
95 UNIQUE INDEX (`hash`),
96 INDEX (`refid`),
97 INDEX (`email`)",
98                         'Main sponsor data');
99                 //
100                 // Sponsor orders
101                 //
102                 addDropTableSql('sponsor_orders');
103                 addCreateTableSql('sponsor_orders', "
104 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
105 `sponsor_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
106 `admin_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
107 `regid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
108 `payment_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
109 `pay_count` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
110 `pay_status` ENUM('PENDING','PAYED','UNPAYED','DELETED') NOT NULL DEFAULT 'PENDING',
111 `pay_ordered` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
112 `pay_done` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00',
113 PRIMARY KEY (`id`),
114 INDEX (`payment_id`),
115 INDEX (`regid`),
116 INDEX (`admin_id`),
117 INDEX (`sponsor_id`)",
118                         'Sponsor orders table');
119                 //
120                 // Pay-types
121                 //
122                 addDropTableSql('sponsor_paytypes');
123                 addCreateTableSql('sponsor_paytypes', "
124 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
125 `pay_name` VARCHAR(255) NOT NULL DEFAULT '',
126 `pay_rate` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
127 `pay_min_count` BIGINT(20) UNSIGNED NOT NULL DEFAULT 1,
128 `pay_currency` VARCHAR(255) NOT NULL DEFAULT '&euro;',
129 PRIMARY KEY (`id`)",
130                         'Sponsor payment types');
131                 //
132                 // Points-to-action converting
133                 //
134                 addDropTableSql('sponsor_action_convert');
135                 addCreateTableSql('sponsor_action_convert', "
136 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
137 `ext_name` VARCHAR(255) NOT NULL DEFAULT 'sponsor',
138 `conv_rate` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
139 `conv_name` VARCHAR(255) NOT NULL DEFAULT 'Mails',
140 PRIMARY KEY (`id`),
141 INDEX (`ext_name`)",
142                         'Points to action convertion data');
143                 //
144                 // Sponsor menu system (default)
145                 //
146                 addDropTableSql('sponsor_menu');
147                 addCreateTableSql('sponsor_menu', "
148 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
149 `action` VARCHAR(255) NOT NULL DEFAULT '',
150 `what`  VARCHAR(255) NULL DEFAULT NULL,
151 `title` VARCHAR(255) NOT NULL DEFAULT '',
152 `active` ENUM('Y','N') NOT NULL DEFAULT 'N',
153 `sort` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
154 PRIMARY KEY (`id`),
155 UNIQUE INDEX `action_what` (`action`, `what`),
156 UNIQUE INDEX (`what`),
157 INDEX (`action`)",
158                         'Sponsor menu');
159                 //
160                 // Registry for performable actions by your sponsors
161                 //
162                 addDropTableSql('sponsor_registry');
163                 addCreateTableSql('sponsor_registry', "
164 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
165 `admin_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
166 `ext_name` VARCHAR(255) NOT NULL DEFAULT 'sponsor',
167 `is_active` ENUM('Y','N') NOT NULL DEFAULT 'N',
168 `stamp_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
169 PRIMARY KEY (`id`),
170 INDEX (`ext_name`),
171 INDEX (`admin_id`)",
172                         'Sponsor action registry');
173                 //
174                 // URLs from the sponsors
175                 //
176                 addDropTableSql('sponsor_urls');
177                 addCreateTableSql('sponsor_urls', "
178 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
179 `sponsor_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
180 `url` VARCHAR(255) NOT NULL DEFAULT 'http://',
181 `title` VARCHAR(255) NOT NULL DEFAULT '',
182 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
183 `status` ENUM('PENDING','ACTIVE','LOCKED') NOT NULL DEFAULT 'PENDING',
184 PRIMARY KEY (`id`),
185 INDEX (`sponsor_id`)",
186                         'URLs from all sponsors');
187                 //
188                 // Banners of any size from the sponsors
189                 //
190                 addDropTableSql('sponsor_banner');
191                 addCreateTableSql('sponsor_banner', "
192 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
193 `sponsor_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
194 `url` VARCHAR(255) NOT NULL DEFAULT 'http://',
195 `alternate` VARCHAR(255) NOT NULL DEFAULT '',
196 `width` INT(7) UNSIGNED NOT NULL DEFAULT 468,
197 `height` INT(7) UNSIGNED NOT NULL DEFAULT 60,
198 `views` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
199 `status` ENUM('PENDING','ACTIVE','LOCKED') NOT NULL DEFAULT 'PENDING',
200 PRIMARY KEY (`id`),
201 INDEX (`sponsor_id`)",
202                         'Banners from all sponsors');
203                 //
204                 // Campaigns
205                 //
206                 addDropTableSql('sponsor_campaigns');
207                 addCreateTableSql('sponsor_campaigns', "
208 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
209 `sponsor_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
210 `admin_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
211 `campaign_name` VARCHAR(255) NOT NULL DEFAULT '',
212 `campaign_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
213 `campaign_start` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00',
214 `campaign_end` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00',
215 `campaign_amount` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
216 `campaign_expired` ENUM('Y','N') NOT NULL DEFAULT 'N',
217 `campaign_locked` ENUM('Y','N') NOT NULL DEFAULT 'Y',
218 `campaign_ended` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00',
219 `locked_reason` TINYTEXT NOT NULL,
220 `locked_timestamp` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00',
221 `status` ENUM('PENDING','ACTIVE','LOCKED') NOT NULL DEFAULT 'PENDING',
222 PRIMARY KEY (`id`),
223 INDEX (`admin_id`),
224 INDEX (`sponsor_id`)",
225                         'Sponsor campaigns');
226                 //
227                 // Campaigns + URLs + Banner
228                 //
229                 addDropTableSql('sponsor_campaign_assigns');
230                 addCreateTableSql('sponsor_campaign_assigns', "
231 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
232 `campaignid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
233 `urlid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
234 `bannerid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
235 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
236 `views` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
237 PRIMARY KEY (`id`),
238 INDEX (`bannerid`),
239 INDEX (`urlid`),
240 INDEX (`campaignid`)",
241                         'Campaign+Banner+URL connection data');
242                 //
243                 // Allowed data to display (administrative)
244                 //
245                 addDropTableSql('sponsor_admin_data');
246                 addCreateTableSql('sponsor_admin_data', "
247 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
248 `data_row` VARCHAR(255) NOT NULL DEFAULT '',
249 `display` ENUM('Y','N') NOT NULL DEFAULT 'N',
250 PRIMARY KEY (`id`)",
251                         'Allowed data to display to the admin');
252                 //
253                 // Allowed data to display (sponsor-side)
254                 //
255                 addDropTableSql('sponsor_display_data');
256                 addCreateTableSql('sponsor_display_data', "
257 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
258 `sponsor_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
259 `data_row` VARCHAR(255) NOT NULL DEFAULT '',
260 `display` ENUM('Y','N') NOT NULL DEFAULT 'N',
261 PRIMARY KEY (`id`),
262 INDEX (`sponsor_id`)",
263                         'Data sponsors allowed to see');
264                 //
265                 // Default allowed data to display
266                 //
267                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('id','N')");
268                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('company','Y')");
269                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('position','N')");
270                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('tax_ident','N')");
271                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('gender','N')");
272                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('surname','N')");
273                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('family','N')");
274                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('street_nr1','Y')");
275                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('street_nr2','Y')");
276                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('zip','Y')");
277                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('city','Y')");
278                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('country','Y')");
279                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('phone','Y')");
280                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('fax','Y')");
281                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('email','Y')");
282                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('url','N')");
283                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('password','N')");
284                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('remote_addr','N')");
285                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('sponsor_created','N')");
286                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('last_online','N')");
287                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('last_change','N')");
288                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('status','N')");
289                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('receive_warnings','N')");
290                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('warning_interval','N')");
291                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('points_amount','N')");
292                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('points_used','N')");
293                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('refid','N')");
294                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('ref_count','N')");
295                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('hash','N')");
296                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('last_payment','N')");
297                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_admin_data` (`data_row`, `display`) VALUES ('last_currency','N')");
298                 //
299                 // Add default entries
300                 //
301                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_registry` (`ext_name`, `is_active`, `admin_id`, `stamp_added`) VALUES ('sponsor', 'N', {%%pipe,getCurrentAdminId%%}, NOW())");
302                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_action_convert` (`ext_name`, `conv_rate`, `conv_name`) VALUES ('sponsor',10,'Mails')");
303                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_paytypes` (`pay_name`, `pay_min_count`, `pay_rate`, `pay_currency`) VALUES ('Standard-Paket', 5, 1000.00000, '&euro;')");
304                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_paytypes` (`pay_name`, `pay_min_count`, `pay_rate`, `pay_currency`) VALUES ('Spar-Paket', 1, 200.00000, '&euro;')");
305                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_paytypes` (`pay_name`, `pay_min_count`, `pay_rate`, `pay_currency`) VALUES ('Power-Paket', 10, 2000.00000, '&euro;')");
306                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_paytypes` (`pay_name`, `pay_min_count`, `pay_rate`, `pay_currency`) VALUES ('Sponsor-Paket', 20, 4000.00000, '&euro;')");
307                 //
308                 // Admin menu
309                 //
310                 addAdminMenuSql('sponsor', NULL, 'Sponsorenbereich','Den Sponsorenbereich verwalten. Hier k&ouml;nnen Sie auch Sonderaktionen seperat deakvieren oder wieder aktivieren, Sponsorenaccounts verwalten usw.', 7);
311                 addAdminMenuSql('sponsor','add_sponsor','Neuer Sponsor','Neues Sponsorenaccount hinzuf&uuml;gen.', 1);
312                 addAdminMenuSql('sponsor','unlock_sponsor','Sponsor freischalten','Sponsorenaccounts freigeben / sperren.', 2);
313                 addAdminMenuSql('sponsor','list_sponsor','Sponsoren auflisten','Listet alle verf&uuml;gbaren Sponsorenaccounts auf.', 3);
314                 addAdminMenuSql('sponsor','edit_sponsor','Sponsor &auml;ndern','Sponsorenaccount &auml;ndern (Grundaten, nicht Freigabe!).', 4);
315                 addAdminMenuSql('sponsor','lock_sponsor','Sponsor ent-/sperren','Sponsorenaccount sperren und entsperren.', 5);
316                 addAdminMenuSql('sponsor','del_sponsor','Sponsor l&ouml;schen','Sponsorenaccount l&ouml;schen.', 6);
317                 addAdminMenuSql('sponsor','sponsor_contct','Sponsor kontaktieren','Kontaktieren Sie Sponsoren komfortabel &uuml;ber dieses {?TITLE?}.', 7);
318                 addAdminMenuSql('sponsor','allow_sponsor_data','Datenverwaltung','Stellen Sie hier ein, welche Daten der Sponsor im Mitgliedsbereich &uuml;ber sicht anzeigen darf und welche nicht.', 8);
319                 addAdminMenuSql('sponsor','list_sponsor_pays','Bestellungen...','Bestellungen der Sponsoren auflisten / bearbeiten.', 9);
320                 addAdminMenuSql('sponsor','list_sponsor_campaigns','Kampagnen...','Management aller von Ihren Sponsoren eingerichteten Kampagnen.', 10);
321                 addAdminMenuSql('sponsor','list_sponsor_urls','URL-Management','Management (freischalten, sperren, l&ouml;schen, testen, bearbeiten usw.) von gebuchten URLs.', 11);
322                 addAdminMenuSql('sponsor','list_sponsor_banner','Banner-Management','Management (freischalten, sperren, l&ouml;schen, testen, bearbeiten usw.) von gebuchten Bannern.', 12);
323                 addAdminMenuSql('sponsor','list_sponsor_reg','Sponsor-Aktionen','Alle Sponsor-Aktionen auflisten und verwalten.', 13);
324                 addAdminMenuSql('sponsor','list_sponsor_pay','Buchungspakete','Die Sponsoren k&ouml;nnen sich {OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Pakete kaufen. Hier k&ouml;nnen Sie diese verwalten.', 14);
325                 addAdminMenuSql('sponsor','list_sponsor_conv','{OPEN_CONFIG}POINTS{CLOSE_CONFIG} umwandeln...','Mit den vom Sponsor gekauften {OPEN_CONFIG}POINTS{CLOSE_CONFIG} kann er Aktionen buchen. Hier stellen Sie die Umrechnungsrate von {OPEN_CONFIG}POINTS{CLOSE_CONFIG} nach Sponsoraktionen um. Beispiel: 1 {OPEN_CONFIG}POINTS{CLOSE_CONFIG} = 10 Mails.', 15);
326                 addAdminMenuSql('sponsor','config_sponsor','Einstellungen','Allgemeine Einstellungen am Sponsoring-System.', 16);
327                 addAdminMenuSql('repair','repr_sponsor','Sponsormen&uuml;','Gewichtung des Sponsormen&uuml;s reparieren.', 5);
328                 //
329                 // Menu system (still admin menu)
330                 //
331                 addAdminMenuSql('menu','sponsor_medit','Sponsor-Men&uuml; editieren','Hier k&ouml;nnen Sie das Sponsorenmen&uuml; ver&auml;ndern: Positionen ver&auml;ndern, Men&uuml;titel &auml;ndern usw.', 7);
332                 addAdminMenuSql('menu','sponsor_madd','Sponsor-Men&uuml; hinzuf&uuml;gen','Hier k&ouml;nnen Sie einen neuen Men&uuml;punkt hinzuf&uuml;gen (falls Sie z.B. eigene Sponsoraktionen entwickelt haben oder welche versehendlich gel&ouml;scht haben.', 8);
333                 //
334                 // Guest menu
335                 //
336                 addGuestMenuSql('sponsor', NULL, 'Sponsoren', 2);
337                 addGuestMenuSql('sponsor', 'sponsor_reg', 'Anmeldung', 1);
338                 addGuestMenuSql('sponsor', 'sponsor_login', 'Einloggen', 2);
339                 addGuestMenuSql('sponsor', 'sponsor_infos', 'Infos/Preise', 3);
340                 addGuestMenuSql('sponsor', 'sponsor_agb', 'AGBs', 4);
341                 //
342                 // Member menu
343                 //
344                 addMemberMenuSql('main', 'sponsor_list', 'Unsere Sponsoren', 8);
345                 addMemberMenuSql('main', 'sponsor_reg', 'Sponsor werden', 9);
346                 //
347                 // Add default menus to sponsor menu
348                 //
349                 addSponsorMenuSql('main', NULL, 'Hauptauswahl', 'N', 1);
350                 addSponsorMenuSql('main', 'welcome', 'Willkommen', 'N', 1);
351                 addSponsorMenuSql('main', 'account', 'Ihr Account', 'N', 2);
352                 addSponsorMenuSql('main', 'campaigns', 'Kampagnen', 'N', 3);
353                 addSponsorMenuSql('main', 'list_urls', 'URL-Management', 'N', 4);
354                 addSponsorMenuSql('main', 'list_banner', 'Banner-Management', 'N', 5);
355                 addSponsorMenuSql('main', 'settings', 'Einstellungen', 'N', 6);
356                 addSponsorMenuSql('main', 'fillup', 'Konto auff&uuml;llen', 'N', 7);
357                 addSponsorMenuSql('main', 'stats', 'Statistiken', 'N', 8);
358                 addSponsorMenuSql('main', 'inquiry', 'Kontaktanfrage', 'N', 9);
359                 addSponsorMenuSql('main', 'refid', 'Referral-Link', 'N', 10);
360                 addSponsorMenuSql('actions', NULL, 'Sponsorenaktionen', 'N', 2);
361                 addSponsorMenuSql('actions', 'mail', 'Sponsor-Mail', 'N', 1);
362                 addSponsorMenuSql('actions', 'banner', 'Banner buchen', 'N', 2);
363                 addSponsorMenuSql('actions', 'text', 'Textlink buchen', 'N', 3);
364                 addSponsorMenuSql('logout', NULL, 'Ausloggen', 'N', 3);
365                 addSponsorMenuSql('logout', 'logout', 'Ausloggen', 'N', 1);
366                 addSponsorMenuSql('logout', 'guest', 'Zum Gastbereich', 'N', 2);
367                 //
368                 // General configuration stuff
369                 //
370                 addConfigAddSql('sponsor_ref_points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000');
371                 addConfigAddSql('sponsor_min_points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 1000.00000');
372                 //
373                 // Register module
374                 //
375                 addModuleSql('sponsor', '{OPEN_TEMPLATE}MODULE_SPONSOR_TITLE{CLOSE_TEMPLATE}', 'Y', 'Y', 'N', 'N');
376                 addModuleSql('sponsor_confirm', '{OPEN_TEMPLATE}MODULE_SPONSOR_CONFIRM_TITLE{CLOSE_TEMPLATE}', 'Y', 'Y', 'N', 'N');
377                 addModuleSql('sponsor_ref', '{OPEN_TEMPLATE}MODULE_SPONSOR_REF_TITLE{CLOSE_TEMPLATE}', 'Y', 'Y', 'N', 'N');
378                 break;
379
380         case 'remove': // Do stuff when removing extension
381                 // SQL commands to run
382                 addDropTableSql('sponsor_data');
383                 addDropTableSql('sponsor_orders');
384                 addDropTableSql('sponsor_action_convert');
385                 addDropTableSql('sponsor_paytypes');
386                 addDropTableSql('sponsor_menu');
387                 addDropTableSql('sponsor_registry');
388                 addDropTableSql('sponsor_urls');
389                 addDropTableSql('sponsor_banner');
390                 addDropTableSql('sponsor_campaigns');
391                 addDropTableSql('sponsor_campaign_assigns');
392                 addDropTableSql('sponsor_admin_data');
393                 addDropTableSql('sponsor_display_data');
394                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='sponsor' OR `what` IN('repr_sponsor','sponsor_medit','sponsor_madd')");
395                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `action`='sponsor'");
396                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what` IN('sponsor_list','sponsor_reg')");
397                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_mod_reg` WHERE `module` IN ('sponsor','sponsor_confirm','sponsor_ref') LIMIT 3");
398                 break;
399
400         case 'activate': // Do stuff when admin activates this extension
401                 // SQL commands to run
402                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='Y',`locked`='N' WHERE `action`='sponsor'");
403                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y',`locked`='N' WHERE `what`='sponsor' LIMIT 1");
404                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_sponsor_menu` SET `active`='Y' WHERE active='N'");
405                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_sponsor_registry` SET `is_active`='Y' WHERE `is_active`='N'");
406                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N',`hidden`='N',`admin_only`='N',`mem_only`='N' WHERE `module` IN ('sponsor','sponsor_confirm','sponsor_ref') LIMIT 3");
407                 break;
408
409         case 'deactivate': // Do stuff when admin deactivates this extension
410                 // SQL commands to run
411                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='N',`locked`='Y' WHERE `action`='sponsor'");
412                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N',`locked`='Y' WHERE `what`='sponsor' LIMIT 1");
413                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_sponsor_menu` SET `active`='N' WHERE `active`='Y'");
414                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_sponsor_registry` SET `is_active`='N' WHERE `is_active`='Y'");
415                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module` IN ('sponsor','sponsor_confirm','sponsor_ref') LIMIT 3");
416                 break;
417
418         case 'update': // Update an extension
419                 switch (getCurrentExtensionVersion()) {
420                         case '0.0.1': // SQL queries for v0.0.1
421                                 addExtensionSql('');
422
423                                 // Update notes (these will be set as task text!)
424                                 setExtensionUpdateNotes('');
425                                 break;
426                 } // END - switch
427                 break;
428
429         case 'modify': // When the extension got modified
430                 break;
431
432         case 'test': // For testing purposes
433                 break;
434
435         case 'init': // Do stuff when extension is initialized
436                 break;
437
438         default: // Unknown extension mode
439                 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
440                 break;
441 } // END - switch
442
443 // [EOF]
444 ?>