2 /************************************************************************
3 * Mailer v0.2.1-FINAL Start: 06/02/2011 *
4 * =================== Last change: 06/02/2011 *
6 * -------------------------------------------------------------------- *
8 * -------------------------------------------------------------------- *
9 * Short description : Filters for ext- *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Filter fuer ext- *
12 * -------------------------------------------------------------------- *
15 * $Tag:: 0.2.1-FINAL $ *
17 * -------------------------------------------------------------------- *
18 * Copyright (c) 2003 - 2009 by Roland Haeder *
19 * Copyright (c) 2009 - 2013 by Mailer Developer Team *
20 * For more information visit: http://mxchange.org *
22 * This program is free software; you can redistribute it and/or modify *
23 * it under the terms of the GNU General Public License as published by *
24 * the Free Software Foundation; either version 2 of the License, or *
25 * (at your option) any later version. *
27 * This program is distributed in the hope that it will be useful, *
28 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
29 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
30 * GNU General Public License for more details. *
32 * You should have received a copy of the GNU General Public License *
33 * along with this program; if not, write to the Free Software *
34 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
36 ************************************************************************/
38 // Some security stuff...
39 if (!defined('__SECURITY')) {
43 // Run a filter for must-fillout fields
44 function FILTER_REGISTER_MUST_FILLOUT ($filterData) {
45 // Get all fields for output
46 //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
47 $result = sqlQuery('SELECT `field_name`, `field_required` FROM `{?_MYSQL_PREFIX?}_must_register` ORDER BY `id` ASC',
48 __FUNCTION__, __LINE__);
50 // Walk through all entries
51 while ($row = sqlFetchArray($result)) {
52 // Must the user fill out this element?
54 if ($row['field_required'] == 'Y') {
55 $value = '<span class="notice">(*)</span>';
59 $filterData['must_fillout_' . strtolower($row['field_name']) . ''] = $value;
63 sqlFreeResult($result);
66 //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
71 * Run a filter for pre user registration - generic code (e.g. create hash,
72 * init global array elements). WARNING: This filter MUST run filter before all
73 * others, make your extension/-update depending on ext-register to avoid
74 * missing global array elements, etc.
76 * @param $filterData Filter data from previous filter
77 * @return $filterData Unchanged filter data
79 function FILTER_PRE_USER_REGISTRATION_GENERIC ($filterData) {
80 //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
82 // Generate hash which will be inserted into confirmation mail
83 $GLOBALS['register_confirm_hash'] = generateHash(sha1(
84 // Get total confirmed, ...
85 getTotalConfirmedUser() . getEncryptSeparator() .
86 // ... unconfirmed ...
87 getTotalUnconfirmedUser() . getEncryptSeparator() .
88 // ... and locked users
89 getTotalLockedUser() . getEncryptSeparator() .
90 postRequestElement('month') . '-' .
91 postRequestElement('day') . '-' .
92 postRequestElement('year') . getEncryptSeparator() .
93 postRequestElement('password1') . getEncryptSeparator() .
94 detectServerName() . getEncryptSeparator() .
95 detectRemoteAddr() . getEncryptSeparator() .
96 detectUserAgent() . '/' .
99 getConfig('CACHE_BUSTER')
102 // Old way with enterable two-char-code
103 $GLOBALS['register_country_row'] = '`country`';
104 $GLOBALS['register_country_data'] = substr(postRequestElement('cntry'), 0, 2);
106 // Init "status" as for many users
107 setPostRequestElement('status', 'UNCONFIRMED');
109 // Add ip for later POST pings
110 setPostRequestElement('remote_addr', detectRemoteAddr());
112 // Generic initialization is done
113 $filterData['init_done'] = TRUE;
116 //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
117 //* NOISY-DEBUG: */ print __FUNCTION__.':filterData=<pre>'.print_r($filterData,TRUE).'</pre>';
121 // Filter to run generic user registation (default)
122 function FILTER_GENERIC_USER_REGISTRATION ($filterData) {
123 //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
125 // Is generic user registration selected?
126 if ((isPostRequestElementSet('registration_provider')) && (postRequestElement('registration_provider') == 'register')) {
128 $filterData['status'] = doGenericUserRegistration();
130 // Interrupt filter chain
131 interruptFilterChain();
135 //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
139 // Filter to run generic user registation check (default)
140 function FILTER_GENERIC_USER_REGISTRATION_CHECK () {
141 // Default is form is not sent
143 //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
145 // Is the registration provider set?
146 if ((isFormSent()) && (isPostRequestElementSet('registration_provider')) && (postRequestElement('registration_provider') == 'register')) {
148 $isFormSent = isRegistrationDataComplete();
150 // Interrupt filter chain
151 interruptFilterChain();
155 //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
159 // Filter to run generic things on registration done
160 function FILTER_GENERIC_USER_REGISTRATION_DONE () {
161 //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
163 // Is generic user registration selected?
164 if ((isPostRequestElementSet('registration_provider')) && (postRequestElement('registration_provider') == 'register')) {
166 displayMessage('{--REGISTRATION_DONE--}');
168 // Interrupt filter chain
169 interruptFilterChain();
176 // Filter to run generic things on registration failed
177 function FILTER_GENERIC_USER_REGISTRATION_FAILED () {
178 //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
180 // Is generic user registration selected?
181 if ((isPostRequestElementSet('registration_provider')) && (postRequestElement('registration_provider') == 'register')) {
182 // This should not be reached
183 reportBug(__FUNCTION__, __LINE__, 'This filter should not handle it.');
190 // Filter to run generic things on registration form
191 function FILTER_GENERIC_USER_REGISTRATION_FORM () {
192 //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
194 // Is generic user registration selected?
195 if (((isGetRequestElementSet('registration_provider')) && (getRequestElement('registration_provider') == 'register')) || (getDefaultRegistrationProvider() == 'register')) {
196 // Display generic form
197 doDisplayGenericUserRegistrationForm();
199 // Interrupt filter chain
200 interruptFilterChain();