2 /************************************************************************
3 * Mailer v0.2.1-FINAL Start: 01/23/2013 *
4 * =================== Last change: 01/23/2013 *
6 * -------------------------------------------------------------------- *
7 * File : mode-update.php *
8 * -------------------------------------------------------------------- *
9 * Short description : Swapped out registration system for new members *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Ausgelagertes Anmeldesystem fuer Mitglieder *
12 * -------------------------------------------------------------------- *
13 * Copyright (c) 2003 - 2009 by Roland Haeder *
14 * Copyright (c) 2009 - 2016 by Mailer Developer Team *
15 * For more information visit: http://mxchange.org *
17 * This program is free software; you can redistribute it and/or modify *
18 * it under the terms of the GNU General Public License as published by *
19 * the Free Software Foundation; either version 2 of the License, or *
20 * (at your option) any later version. *
22 * This program is distributed in the hope that it will be useful, *
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
25 * GNU General Public License for more details. *
27 * You should have received a copy of the GNU General Public License *
28 * along with this program; if not, write to the Free Software *
29 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
31 ************************************************************************/
33 // Some security stuff...
34 if (!defined('__SECURITY')) {
38 // @TODO Remove double tabs from all lines
39 switch (getCurrentExtensionVersion()) {
40 case '0.1.0': // SQL queries for v0.1.0
41 addDropTableSql('must_register');
42 addCreateTableSql('must_register', "
43 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
44 `field_name` VARCHAR(255) NOT NULL DEFAULT '',
45 `field_required` ENUM('Y','N') NOT NULL DEFAULT 'Y',
47 'Data which fields the user must fill out');
49 // Add all entries as required (DO NOT DELETE THEM FROM DATABASE!)
50 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('surname', 'Y')");
51 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('family', 'Y')");
52 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('street_nr', 'Y')");
53 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('cntry', 'Y')");
54 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('zip', 'Y')");
55 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('city', 'Y')");
58 addAdminMenuSql('setup','config_register','Pflichtfelder','Stellen Sie hier die Pflichtfelder sowohl im Anmeldeformular, als auch im Mitgliedsbereich unter <strong>Profildaten ändern</strong> ein.', 12);
60 // Update notes (these will be set as task text!)
61 setExtensionUpdateNotes("Einstellbare Pflichtfelder hinzugefügt.");
64 case '0.1.1': // SQL queries for v0.1.1
65 // Update notes (these will be set as task text!)
66 setExtensionUpdateNotes("Veraltetes Update entfernt.");
69 case '0.1.3': // SQL queries for v0.1.3
70 // Update notes (these will be set as task text!)
71 setExtensionUpdateNotes("Standard Referral-Id kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)");
74 case '0.1.4': // SQL queries for v0.1.4
75 // Update notes (these will be set as task text!)
76 setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei geändert.");
79 case '0.1.5': // SQL queries for v0.1.5
80 // Update notes (these will be set as task text!)
81 setExtensionUpdateNotes("Konfiguration der Pflichtangaben ausgelagert in Template");
84 case '0.1.6': // SQL queries for v0.1.6
85 // Update notes (these will be set as task text!)
86 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
89 case '0.1.7': // SQL queries for v0.1.7
90 // Update notes (these will be set as task text!)
91 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
94 case '0.1.8': // SQL queries for v0.1.8
95 // Update notes (these will be set as task text!)
96 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
99 case '0.1.9': // SQL queries for v0.1.9
100 // Update notes (these will be set as task text!)
101 setExtensionUpdateNotes("Pflichtfelder wieder eingebaut (waren irgentwie ausgebaut???)");
104 case '0.2.0': // SQL queries for v0.2.0
105 // Update notes (these will be set as task text!)
106 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
109 case '0.2.1': // SQL queries for v0.2.1
110 // Update notes (these will be set as task text!)
111 setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
114 case '0.2.2': // SQL queries for v0.2.2
115 // Update notes (these will be set as task text!)
116 setExtensionUpdateNotes("Sämtliche Sperren bei eingeloggten Admin deaktiviert.");
119 case '0.2.3': // SQL queries for v0.2.3
120 // Update notes (these will be set as task text!)
121 setExtensionUpdateNotes("Cookie <u>refid</u> aus Anmeldeformular entfernt.");
124 case '0.2.4': // SQL queries for v0.2.4
125 // Update notes (these will be set as task text!)
126 setExtensionUpdateNotes("Design "Solid-Business" eingebaut.");
129 case '0.2.5': // SQL queries for v0.2.5
130 // Update notes (these will be set as task text!)
131 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
134 case '0.2.6': // SQL queries for v0.2.6
135 // Update notes (these will be set as task text!)
136 setExtensionUpdateNotes("IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt.");
139 case '0.2.7': // SQL queries for v0.2.7
140 // Update notes (these will be set as task text!)
141 setExtensionUpdateNotes("Referral-Id wird endlich korrekt gesetzt.");
144 case '0.2.8': // SQL queries for v0.2.8
145 // Update notes (these will be set as task text!)
146 setExtensionUpdateNotes("Parse error in <u>what-register.php</u> beseitigt.");
149 case '0.2.9': // SQL queries for v0.2.9
150 // Update notes (these will be set as task text!)
151 setExtensionUpdateNotes("Anrede "Firma" hinzugefügt.");
154 case '0.3.0': // SQL queries for v0.3.0
155 // Update notes (these will be set as task text!)
156 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
159 case '0.3.1': // SQL queries for v0.3.1
160 // Update notes (these will be set as task text!)
161 setExtensionUpdateNotes("Email-Adresse wird vor dem Speichern auf Gültigkeit hin getestet.");
164 case '0.3.2': // SQL queries for v0.3.2
165 // Update notes (these will be set as task text!)
166 setExtensionUpdateNotes("Einbindung der Erweiterung <strong>country</strong>, die Sie sich noch optional von <strike>meiner Seite herunterladen</strike> müssen.<br />
168 <strong>Wichtig: Laden Sie noch das Template <strong>guest_register.tpl</strong> mit hoch, welches unter templates/".getLanguage()."/html/guest/ zu finden ist!</strong>");
171 case '0.3.3': // SQL queries for v0.3.3
172 // Update notes (these will be set as task text!)
173 setExtensionUpdateNotes("Es werden dem Mitglied nur aktivierte Ländercodes zur Auswahl angeboten.");
176 case '0.3.4': // SQL queries for v0.3.4
177 // Update notes (these will be set as task text!)
178 setExtensionUpdateNotes("Auf Grund der Integration der neue Erweiterung <strong>country</strong> in die Anmeldephase klappte die Anmeldung nicht. Die dazu nütige Verknüpfung ist nun eingebaut und die Anmeldung klappt wieder. Vielen Dank nochmals an den Bug-Reporter (Fehlermelder)!");
181 case '0.3.5': // SQL queries for v0.3.5
182 // Update notes (these will be set as task text!)
183 setExtensionUpdateNotes("Design wird nach Anmeldung auch endlich im Mitgliedsmenü übernommen.");
186 case '0.3.6': // SQL queries for v0.3.6
187 // Update notes (these will be set as task text!)
188 setExtensionUpdateNotes("Fehlermeldung <strong>Fatal error: Call to undefined function: get_theme() in /../../guest/what-register.php on line 190</strong> beseitigt.");
191 case '0.3.7': // SQL queries for v0.3.7
192 // Update notes (these will be set as task text!)
193 setExtensionUpdateNotes("Fehlermeldung <strong>Fatal error: Call to undefined function: get_curr_theme<u>e</u>() in /../../guest/what-register.php on line 190</strong> beseitigt.");
196 case '0.3.8': // SQL queries for v0.3.8
197 // Update notes (these will be set as task text!)
198 setExtensionUpdateNotes("Weitere SQL-Befehle abgesichert.");
201 case '0.3.9': // SQL queries for v0.3.9
202 // Update notes (these will be set as task text!)
203 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
206 case '0.4.0': // SQL queries for v0.4.0
207 // Update notes (these will be set as task text!)
208 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
211 case '0.4.1': // SQL queries for v0.4.1
212 // Update notes (these will be set as task text!)
213 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
216 case '0.4.2': // SQL queries for v0.4.2
217 addConfigAddSql('register_default', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
219 // Update notes (these will be set as task text!)
220 setExtensionUpdateNotes("Bei der Anmeldung kann die Standard-Auswahl zwischen Ja/Nein umgeschaltet werden. Das Ändern des Templates <strong>templates/".getLanguage()."/html/guest/guest_register.tpl</strong> ist nicht mehr nötig.");
223 case '0.4.3': // SQL queries for v0.4.3
224 // Update notes (these will be set as task text!)
225 setExtensionUpdateNotes("Parser-Error in <strong>inc/modules/guest/what-register.php</strong> beseitigt.");
228 case '0.4.4': // SQL queries for v0.4.4
229 // Update notes (these will be set as task text!)
230 setExtensionUpdateNotes("Anmeldefehler (EMail-Adresse war immer ein Ausrufezeichen) beseitigt.");
233 case '0.4.5': // SQL queries for v0.4.5
234 // Update notes (these will be set as task text!)
235 setExtensionUpdateNotes("if-Anweisungen auf Funktion <strong>empty()</strong> umgestellt.");
238 case '0.4.6': // SQL queries for v0.4.6
239 // Update notes (these will be set as task text!)
240 setExtensionUpdateNotes("Einstellung nach {?POINTS?}-Einstellungen verlagert.");
243 case '0.4.7': // SQL queries for v0.4.7
244 // Update notes (these will be set as task text!)
245 setExtensionUpdateNotes("<strong>setSession()</strong> mit @-Zeichen gegen ungewollte Ausgaben abgesichert.");
248 case '0.4.8': // SQL queries for v0.4.8
249 // Update notes (these will be set as task text!)
250 setExtensionUpdateNotes("Hash-Erstellung von <strong>md5()</strong> auf bessere Funktion <strong>generateHash()</strong> umgestellt.");
253 case '0.4.9': // SQL queries for v0.4.9
254 // Update notes (these will be set as task text!)
255 setExtensionUpdateNotes("Problem mit nicht anzeigbaren Kategorien in der Anmeldung beseitigt.");
258 case '0.5.0': // SQL queries for v0.5.0
259 // Update notes (these will be set as task text!)
260 setExtensionUpdateNotes("Fehlermeldung <span class=\"bad\"><strong>Fatal error:</strong> Call to undefined function registerGenerateCategoryTable() in <strong>{?PATH?}/inc/modules/guest/what-register.php</strong> on line <strong>434</strong></span> beseitigt.");
263 case '0.5.1': // SQL queries for v0.5.1
264 // Update notes (these will be set as task text!)
265 setExtensionUpdateNotes("Mail-Template <strong>register-member.tpl</strong> gefixt. Danke an <a href=\"http://forum.mxchange.org/profile-59.html\" target=\"_blank\" title=\"Mitgliedsprofil aufrufen\">wliepe</a> für die Fehlerfindung!");
268 case '0.5.2': // SQL queries for v0.5.2
269 // Update notes (these will be set as task text!)
270 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
273 case '0.5.3': // SQL queries for v0.5.3
275 registerFilter(__FILE__, __LINE__, 'register_must_fillout', 'REGISTER_MUST_FILLOUT', FALSE, TRUE, isExtensionDryRun());
278 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('gender','Y')");
279 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('email','Y')");
280 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('birthday','Y')");
281 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('marker','Y')");
283 // Update notes (these will be set as task text!)
284 setExtensionUpdateNotes("Filter <strong>register_must_fillout</strong> hinzugefügt, weitere Felder in <span class=\"bad\">{?_MYSQL_PREFIX?}_must_register</span> eingefügt.");
287 case '0.5.4': // SQL queries for v0.5.4
288 addAdminMenuSql('setup', 'config_register2', 'Anmeldeformular', 'Stellen Sie ein, wie viel Kategorien der Gast bei der Anmeldung mindestens einstellen muss. Diese Einstellung gilt nachher auch im Mitgliedsbereich!', 8);
290 // Update notes (these will be set as task text!)
291 setExtensionUpdateNotes("Weiteren Menüpunkt aus <strong>menu-{?DEFAULT_LANG?} heraus geholt.");
294 case '0.5.5': // SQL queries for v0.5.5
295 addConfigAddSql('register_generate_password_empty', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
297 // Update notes (these will be set as task text!)
298 setExtensionUpdateNotes("Weiteren Menüpunkt aus <strong>menu-{?DEFAULT_LANG?} heraus geholt.");
301 case '0.5.6': // SQL queries for v0.5.6
302 // Register points data
303 registerExtensionPointsData('register_welcome', 'points', 'LOCKED', 'DIRECT');
306 setExtensionUpdateNotes("Anmeldewillkommensgutschrift wird nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
309 case '0.5.7': // SQL queries for v0.5.7
311 registerFilter(__FILE__, __LINE__, 'pre_user_registration', 'PRE_USER_REGISTRATION_GENERIC', FALSE, TRUE, isExtensionDryRun());
313 // Register points data
314 registerExtensionPointsData('referral_bonus', 'points', 'LOCKED', 'DIRECT');
317 setExtensionUpdateNotes("Anmeldeformular komplett auf drei Filter umgestrickt (mehr dazu siehe Wiki) und weitere Verwendungszwecke registriert.");
320 case '0.5.8': // SQL queries for v0.5.8
321 addConfigAddSql('least_cats', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 5');
322 addConfigAddSql('display_refid', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
323 addConfigAddSql('ip_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 86400');
326 setExtensionUpdateNotes("Anmeldewillkommensgutschrift wird nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
329 case '0.5.9': // SQL queries for v0.5.9
330 // Add table for user register provider
331 addDropTableSql('user_register_provider');
332 addCreateTableSql('user_register_provider', "
333 `provider_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
334 `provider_name` VARCHAR(255) NOT NULL DEFAULT 'local_generic_user_register',
335 `provider_extension` VARCHAR(255) NOT NULL DEFAULT 'register',
336 `provider_is_active` ENUM('Y','N') NOT NULL DEFAULT 'N',
337 PRIMARY KEY (`provider_id`)",
338 'User register providers');
340 // Add (activated) default entry
341 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_user_register_provider` (`provider_is_active`) VALUES ('Y')");
344 addAdminMenuSql('setup', 'list_usr_register_provider', 'MRPs verwalten', 'Alle Mitgliederregistrierungsprovider (MRP) auflisten und verwalten.', 11);
346 // Update notes (these will be set as task text!)
347 setExtensionUpdateNotes("Tabelle für Mitgliedsanmelde-Provider hinzugefügt.");
350 case '0.6.0': // SQL queries for v0.6.0
352 registerFilter(__FILE__, __LINE__, 'user_registration', 'GENERIC_USER_REGISTRATION', FALSE, TRUE, isExtensionDryRun());
353 registerFilter(__FILE__, __LINE__, 'user_registration_done', 'GENERIC_USER_REGISTRATION_DONE', FALSE, TRUE, isExtensionDryRun());
354 registerFilter(__FILE__, __LINE__, 'user_registration_failed', 'GENERIC_USER_REGISTRATION_FAILED', FALSE, TRUE, isExtensionDryRun());
355 registerFilter(__FILE__, __LINE__, 'user_registration_form', 'GENERIC_USER_REGISTRATION_FORM', FALSE, TRUE, isExtensionDryRun());
356 registerFilter(__FILE__, __LINE__, 'check_user_registration', 'GENERIC_USER_REGISTRATION_CHECK', FALSE, TRUE, isExtensionDryRun());
358 // Update default entry
359 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_register_provider` SET `provider_extension`='register' WHERE `provider_extension`='user'");
362 // @TODO Make configurable through web interface
363 addConfigAddSql('default_registration_provider', "VARCHAR(255) NOT NULL DEFAULT 'register'");
365 // Add column for registration provider
366 addExtensionAddTableColumnSql('user_data', 'registration_provider', "VARCHAR(255) NOT NULL DEFAULT 'register'");
368 // Update notes (these will be set as task text!)
369 setExtensionUpdateNotes("Filter für das Handling der Anmeldeanfragen hinzugeügt.");