2 /************************************************************************
3 * Mailer v0.2.1-FINAL Start: 04/29/2004 *
4 * =================== Last change: 11/23/2004 *
6 * -------------------------------------------------------------------- *
7 * File : ext-register.php *
8 * -------------------------------------------------------------------- *
9 * Short description : Swapped out registration system for new members *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Ausgelagertes Anmeldesystem fuer Mitglieder *
12 * -------------------------------------------------------------------- *
15 * $Tag:: 0.2.1-FINAL $ *
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 *
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')) {
44 setThisExtensionVersion('0.5.7');
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', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.5.3', '0.5.4', '0.5.5', '0.5.6', '0.5.7'));
49 switch (getExtensionMode()) {
50 case 'register': // Do stuff when installation is running
51 // SQL commands to run
52 addGuestMenuSql('members', 'register', 'Anmeldung', 2);
55 case 'remove': // Do stuff when removing extension
56 // SQL commands to run
57 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='config_register' LIMIT 1");
58 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='register' LIMIT 1");
59 addDropTableSql('must_register');
61 // Unregister points data
62 unregisterExtensionPointsData('register_welcome');
63 unregisterExtensionPointsData('referral_bonus');
64 unregisterExtensionPointsData('referral_bonus_ref');
67 unregisterFilter(__FILE__, __LINE__, 'register_must_fillout', 'REGISTER_MUST_FILLOUT', TRUE, isExtensionDryRun());
68 unregisterFilter(__FILE__, __LINE__, 'pre_user_registration', 'PRE_USER_REGISTRATION_GENERIC', TRUE, isExtensionDryRun());
71 case 'activate': // Do stuff when admin activates this extension
72 // SQL commands to run
73 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `locked`='N',`visible`='Y' WHERE `what`='register' LIMIT 1");
76 case 'deactivate': // Do stuff when admin deactivates this extension
77 // SQL commands to run
78 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `locked`='Y',`visible`='N' WHERE `what`='register' LIMIT 1");
81 case 'update': // Update an extension
82 switch (getCurrentExtensionVersion()) {
83 case '0.1.0': // SQL queries for v0.1.0
84 addDropTableSql('must_register');
85 addCreateTableSql('must_register', "
86 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
87 `field_name` VARCHAR(255) NOT NULL DEFAULT '',
88 `field_required` ENUM('Y','N') NOT NULL DEFAULT 'Y',
90 'Data which fields the user must fill out');
92 // Add all entries as required (DO NOT DELETE THEM FROM DATABASE!)
93 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('surname', 'Y')");
94 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('family', 'Y')");
95 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('street_nr', 'Y')");
96 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('cntry', 'Y')");
97 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('zip', 'Y')");
98 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('city', 'Y')");
101 addAdminMenuSql('setup','config_register','Pflichtfelder','Stellen Sie hier die Pflichtfelder sowohl im Anmeldeformular, als auch im Mitgliedsbereich unter <strong>Profildaten ändern</strong> ein.', 12);
103 // Update notes (these will be set as task text!)
104 setExtensionUpdateNotes("Einstellbare Pflichtfelder hinzugefügt.");
107 case '0.1.1': // SQL queries for v0.1.1
108 // Update notes (these will be set as task text!)
109 setExtensionUpdateNotes("Veraltetes Update entfernt.");
112 case '0.1.3': // SQL queries for v0.1.3
113 // Update notes (these will be set as task text!)
114 setExtensionUpdateNotes("Standard Referral-Id kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)");
117 case '0.1.4': // SQL queries for v0.1.4
118 // Update notes (these will be set as task text!)
119 setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei geändert.");
122 case '0.1.5': // SQL queries for v0.1.5
123 // Update notes (these will be set as task text!)
124 setExtensionUpdateNotes("Konfiguration der Pflichtangaben ausgelagert in Template");
127 case '0.1.6': // SQL queries for v0.1.6
128 // Update notes (these will be set as task text!)
129 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
132 case '0.1.7': // SQL queries for v0.1.7
133 // Update notes (these will be set as task text!)
134 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
137 case '0.1.8': // SQL queries for v0.1.8
138 // Update notes (these will be set as task text!)
139 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
142 case '0.1.9': // SQL queries for v0.1.9
143 // Update notes (these will be set as task text!)
144 setExtensionUpdateNotes("Pflichtfelder wieder eingebaut (waren irgentwie ausgebaut???)");
147 case '0.2.0': // SQL queries for v0.2.0
148 // Update notes (these will be set as task text!)
149 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
152 case '0.2.1': // SQL queries for v0.2.1
153 // Update notes (these will be set as task text!)
154 setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
157 case '0.2.2': // SQL queries for v0.2.2
158 // Update notes (these will be set as task text!)
159 setExtensionUpdateNotes("Sämtliche Sperren bei eingeloggten Admin deaktiviert.");
162 case '0.2.3': // SQL queries for v0.2.3
163 // Update notes (these will be set as task text!)
164 setExtensionUpdateNotes("Cookie <u>refid</u> aus Anmeldeformular entfernt.");
167 case '0.2.4': // SQL queries for v0.2.4
168 // Update notes (these will be set as task text!)
169 setExtensionUpdateNotes("Design "Solid-Business" eingebaut.");
172 case '0.2.5': // SQL queries for v0.2.5
173 // Update notes (these will be set as task text!)
174 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
177 case '0.2.6': // SQL queries for v0.2.6
178 // Update notes (these will be set as task text!)
179 setExtensionUpdateNotes("IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt.");
182 case '0.2.7': // SQL queries for v0.2.7
183 // Update notes (these will be set as task text!)
184 setExtensionUpdateNotes("Referral-Id wird endlich korrekt gesetzt.");
187 case '0.2.8': // SQL queries for v0.2.8
188 // Update notes (these will be set as task text!)
189 setExtensionUpdateNotes("Parse error in <u>what-register.php</u> beseitigt.");
192 case '0.2.9': // SQL queries for v0.2.9
193 // Update notes (these will be set as task text!)
194 setExtensionUpdateNotes("Anrede "Firma" hinzugefügt.");
197 case '0.3.0': // SQL queries for v0.3.0
198 // Update notes (these will be set as task text!)
199 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
202 case '0.3.1': // SQL queries for v0.3.1
203 // Update notes (these will be set as task text!)
204 setExtensionUpdateNotes("Email-Adresse wird vor dem Speichern auf G¨tigkeit hin getestet.");
207 case '0.3.2': // SQL queries for v0.3.2
208 // Update notes (these will be set as task text!)
209 setExtensionUpdateNotes("Einbindung der Erweiterung <strong>country</strong>, die Sie sich noch optional von <strike>meiner Seite herunterladen</strike> müssen.<br />
211 <strong>Wichtig: Laden Sie noch das Template <strong>guest_register.tpl</strong> mit hoch, welches unter templates/".getLanguage()."/html/guest/ zu finden ist!</strong>");
214 case '0.3.3': // SQL queries for v0.3.3
215 // Update notes (these will be set as task text!)
216 setExtensionUpdateNotes("Es werden dem Mitglied nur aktivierte Ländercodes zur Auswahl angeboten.");
219 case '0.3.4': // SQL queries for v0.3.4
220 // Update notes (these will be set as task text!)
221 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)!");
224 case '0.3.5': // SQL queries for v0.3.5
225 // Update notes (these will be set as task text!)
226 setExtensionUpdateNotes("Design wird nach Anmeldung auch endlich im Mitgliedsmenü übernommen.");
229 case '0.3.6': // SQL queries for v0.3.6
230 // Update notes (these will be set as task text!)
231 setExtensionUpdateNotes("Fehlermeldung <strong>Fatal error: Call to undefined function: get_theme() in /../../guest/what-register.php on line 190</strong> beseitigt.");
234 case '0.3.7': // SQL queries for v0.3.7
235 // Update notes (these will be set as task text!)
236 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.");
239 case '0.3.8': // SQL queries for v0.3.8
240 // Update notes (these will be set as task text!)
241 setExtensionUpdateNotes("Weitere SQL-Befehle abgesichert.");
244 case '0.3.9': // SQL queries for v0.3.9
245 // Update notes (these will be set as task text!)
246 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
249 case '0.4.0': // SQL queries for v0.4.0
250 // Update notes (these will be set as task text!)
251 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
254 case '0.4.1': // SQL queries for v0.4.1
255 // Update notes (these will be set as task text!)
256 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
259 case '0.4.2': // SQL queries for v0.4.2
260 addConfigAddSql('register_default', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
262 // Update notes (these will be set as task text!)
263 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.");
266 case '0.4.3': // SQL queries for v0.4.3
267 // Update notes (these will be set as task text!)
268 setExtensionUpdateNotes("Parser-Error in <strong>inc/modules/guest/what-register.php</strong> beseitigt.");
271 case '0.4.4': // SQL queries for v0.4.4
272 // Update notes (these will be set as task text!)
273 setExtensionUpdateNotes("Anmeldefehler (EMail-Adresse war immer ein Ausrufezeichen) beseitigt.");
276 case '0.4.5': // SQL queries for v0.4.5
277 // Update notes (these will be set as task text!)
278 setExtensionUpdateNotes("if-Anweisungen auf Funktion <strong>empty()</strong> umgestellt.");
281 case '0.4.6': // SQL queries for v0.4.6
282 // Update notes (these will be set as task text!)
283 setExtensionUpdateNotes("Einstellung nach {?POINTS?}-Einstellungen verlagert.");
286 case '0.4.7': // SQL queries for v0.4.7
287 // Update notes (these will be set as task text!)
288 setExtensionUpdateNotes("<strong>setSession()</strong> mit @-Zeichen gegen ungewollte Ausgaben abgesichert.");
291 case '0.4.8': // SQL queries for v0.4.8
292 // Update notes (these will be set as task text!)
293 setExtensionUpdateNotes("Hash-Erstellung von <strong>md5()</strong> auf bessere Funktion <strong>generateHash()</strong> umgestellt.");
296 case '0.4.9': // SQL queries for v0.4.9
297 // Update notes (these will be set as task text!)
298 setExtensionUpdateNotes("Problem mit nicht anzeigbaren Kategorien in der Anmeldung beseitigt.");
301 case '0.5.0': // SQL queries for v0.5.0
302 // Update notes (these will be set as task text!)
303 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.");
306 case '0.5.1': // SQL queries for v0.5.1
307 // Update notes (these will be set as task text!)
308 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!");
311 case '0.5.2': // SQL queries for v0.5.2
312 // Update notes (these will be set as task text!)
313 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
316 case '0.5.3': // SQL queries for v0.5.3
318 registerFilter(__FILE__, __LINE__, 'register_must_fillout', 'REGISTER_MUST_FILLOUT', FALSE, TRUE, isExtensionDryRun());
321 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('gender','Y')");
322 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('email','Y')");
323 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('birthday','Y')");
324 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('marker','Y')");
326 // Update notes (these will be set as task text!)
327 setExtensionUpdateNotes("Filter <strong>register_must_fillout</strong> hinzugefügt, weitere Felder in <span class=\"bad\">{?_MYSQL_PREFIX?}_must_register</span> eingefügt.");
330 case '0.5.4': // SQL queries for v0.5.4
331 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);
333 // Update notes (these will be set as task text!)
334 setExtensionUpdateNotes("Weiteren Menüpunkt aus <strong>menu-{?DEFAULT_LANG?} heraus geholt.");
337 case '0.5.5': // SQL queries for v0.5.5
338 addConfigAddSql('register_generate_password_empty', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
340 // Update notes (these will be set as task text!)
341 setExtensionUpdateNotes("Weiteren Menüpunkt aus <strong>menu-{?DEFAULT_LANG?} heraus geholt.");
344 case '0.5.6': // SQL queries for v0.5.6
345 // Register points data
346 registerExtensionPointsData('register_welcome', 'points', 'LOCKED', 'DIRECT');
349 setExtensionUpdateNotes("Anmeldewillkommensgutschrift wird nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
352 case '0.5.7': // SQL queries for v0.5.7
354 registerFilter(__FILE__, __LINE__, 'pre_user_registration', 'PRE_USER_REGISTRATION_GENERIC', FALSE, TRUE, isExtensionDryRun());
356 // Register points data
357 registerExtensionPointsData('referral_bonus', 'points', 'LOCKED', 'DIRECT');
358 registerExtensionPointsData('referral_bonus_ref', 'points', 'LOCKED', 'DIRECT');
361 setExtensionUpdateNotes("Anmeldeformular komplett auf drei Filter umgestrickt (mehr dazu siehe Wiki) und weitere Verwendungszwecke registriert.");
366 case 'modify': // When the extension got modified
369 case 'test': // For testing purposes
372 case 'init': // Do stuff when extension is initialized
375 default: // Unknown extension mode
376 reportBug(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));