X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fmodules%2Fmember%2Fwhat-mydata.php;h=270d746505598f81015eef939c8a6e350de12fe5;hp=adbd169537aa0b8ac910311360359708a7a2faf4;hb=b624e45282e31944d7b72742ba0aa826862850dd;hpb=c2e17d983fcbc0c3bd1dd37908d87c678f0367df diff --git a/inc/modules/member/what-mydata.php b/inc/modules/member/what-mydata.php index adbd169537..270d746505 100644 --- a/inc/modules/member/what-mydata.php +++ b/inc/modules/member/what-mydata.php @@ -1,7 +1,7 @@ getUserId() -); +$content = array(); // Init variable to prevent notices -$URL = ''; +$url = ''; // Detect what the member wants to do $mode = 'show'; // Show his data -if (isPostRequestElementSet('save')) $mode = 'save'; // Save entered data -if (isPostRequestElementSet('edit')) $mode = 'edit'; // Edit data -if (isPostRequestElementSet('notify')) $mode = 'notify'; // Switch off notification +if (isFormSent('save')) $mode = 'save'; // Save entered data +if (isFormSent('edit')) $mode = 'edit'; // Edit data +if (isFormSent('notify')) $mode = 'notify'; // Switch off notification switch ($mode) { case 'show': // Show his data - if (isExtensionActive('country', true)) { - // New way 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - $result = SQL_QUERY_ESC("SELECT `surname`, `family`, `street_nr`, `country_code`, `zip`, `city`, `email`, `birth_day`, `birth_month`, `birth_year`, `gender`, `max_mails`, `receive_mails`, `last_update` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1", - array(getUserId()), __FILE__, __LINE__); - } else { - // Old way 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - $result = SQL_QUERY_ESC("SELECT `surname`, `family`, `street_nr`, `country`, `zip`, `city`, `email`, `birth_day`, `birth_month`, `birth_year`, `gender`, `max_mails`, `receive_mails`, `last_update` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1", - array(getUserId()), __FILE__, __LINE__); - } - // Get line - $content = merge_array($content, SQL_FETCHARRAY($result, 0, false)); - - // Free result - SQL_FREERESULT($result); + $content = merge_array($content, getUserDataArray()); // Translate some things - $content['gender'] = translateGender($content['gender']); $content['last_update'] = generateDateTime($content['last_update'], 0); // How far is last change on his profile away from now? - if ((($content['last_update'] + getConfig('profile_lock')) > time()) && (!isAdmin()) && (getConfig('profile_lock') > 0)) { + if ((($content['last_update'] + getProfileLock()) > time()) && (!isAdmin()) && (getProfileLock() > 0)) { // You cannot change your account - $content['change'] = loadTemplate('admin_settings_saved', true, "
".sprintf(getMessage('MEMBER_PROFILE_LOCKED'), generateDateTime($content['last_update'] + getConfig('profile_lock'), 0))."
"); + $content['change'] = displayMessage('
{%message,MEMBER_PROFILE_LOCKED=' . generateDateTime($content['last_update'] + getProfileLock(), 0) . '%}
', TRUE); } else { // He is allowed to change his profile - $content['change'] = loadTemplate('member_mydata_button', true); + $content['change'] = loadTemplate('member_mydata_button', TRUE); } - if (strlen($content['birth_day']) == 1) $content['birth_day'] = 0 . $content['birth_day']; - if (strlen($content['birth_month']) == 1) $content['birth_month'] = 0 . $content['birth_month']; - + // @TODO Move this to a function (for better EL code) switch (getLanguage()) { - case 'de': $content['dob'] = $content['birth_day'] . '.' . $content['birth_month'] . '.' . $content['birth_year']; break; - default : $content['dob'] = $content['birth_month'] . '-' . $content['birth_day'] . '-' . $content['birth_year']; break; + case 'de': $content['dob'] = '{%pipe,padLeftZero=' . $content['birth_day'] . '%}.{%pipe,padLeftZero=' . $content['birth_month'] . '%}.' . $content['birth_year']; break; + default : $content['dob'] = '{%pipe,padLeftZero=' . $content['birth_month'] . '%}-{%pipe,padLeftZero=' . $content['birth_day'] . '%}-' . $content['birth_year']; break; } // END - switch if (isExtensionActive('country')) { @@ -110,136 +91,181 @@ switch ($mode) { } // END - if // Load template - loadTemplate('member_mydata_overview', false, $content); + loadTemplate('member_mydata_overview', FALSE, $content); break; case 'edit': // Edit data - if (isExtensionActive('country', true)) { - // New way 0 1 2 3 4 5 6 7 8 9 10 11 12 13 - $result = SQL_QUERY_ESC("SELECT `surname`, `family`, `street_nr`, `country_code`, `zip`, `city`, `email`, `birth_day`, `birth_month`, `birth_year`, `gender`, `max_mails`, `receive_mails`, `last_update` + if (isExtensionActive('country', TRUE)) { + // New way + $result = SQL_QUERY_ESC('SELECT + `surname`, + `family`, + `street_nr`, + `country_code`, + `zip`, + `city`, + `email`, + `birth_day`, + `birth_month`, + `birth_year`, + `gender`, + `max_mails`, + `receive_mails`, + `last_update` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s -LIMIT 1", - array(getUserId()), __FILE__, __LINE__); +LIMIT 1', + array(getMemberId()), __FILE__, __LINE__); } else { - // Old way 0 1 2 3 4 5 6 7 8 9 10 11 12 13 - $result = SQL_QUERY_ESC("SELECT `surname`, `family`, `street_nr`, `country`, `zip`, `city`, `email`, `birth_day`, `birth_month`, `birth_year`, `gender`, `max_mails`, `receive_mails`, `last_update` + // Old way + $result = SQL_QUERY_ESC('SELECT + `surname`, + `family`, + `street_nr`, + `country`, + `zip`, + `city`, + `email`, + `birth_day`, + `birth_month`, + `birth_year`, + `gender`, + `max_mails`, + `receive_mails`, + `last_update` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s -LIMIT 1", - array(getUserId()), __FILE__, __LINE__); +LIMIT 1', + array(getMemberId()), __FILE__, __LINE__); } // Get line - $content = merge_array($content, SQL_FETCHARRAY($result, 0, false)); + $content = merge_array($content, SQL_FETCHARRAY($result)); // Free result SQL_FREERESULT($result); - $content['update_check'] = $content['last_update'] + getConfig('profile_lock'); + $content['update_check'] = $content['last_update'] + getProfileLock(); // How far is last change on his profile away from now? - if (($content['update_check'] > time()) && (!isAdmin()) && (getConfig('profile_lock') > 0)) { - $content['update_check'] = generateDateTime($content['update_check'] + getConfig('profile_lock'), 0); + if (($content['update_check'] > time()) && (!isAdmin()) && (getProfileLock() > 0)) { + // Profile is locked, so output propper message + $content['update_check'] = '{%message,MEMBER_PROFILE_LOCKED=' . generateDateTime($content['update_check'] + getProfileLock(), '0') . '%}'; + // You cannot change your account - loadTemplate('member_mydata_locked', false, $content); + displayMessage($content['update_check']); } else { - // He is allowed to change his profile - foreach (array('gender_m','gender_f','gender_c') as $entry) { - $content[$entry] = ''; - } // END - foreach - - $content['gender_' . strtolower($content['gender'])] = ' selected="selected"'; + // Init elements $content['dob'] = ''; switch (getLanguage()) { case 'de': // German date format // Day - $content['dob'] .= addSelectionBox('day', $content['birth_day']); + $content['dob'] .= addSelectionBox('da', $content['birth_day']); // Month - $content['dob'] .= addSelectionBox('month', $content['birth_month']); + $content['dob'] .= addSelectionBox('mo', $content['birth_month']); // Year - $content['dob'] .= addSelectionBox('year', $content['birth_year']); + $content['dob'] .= addSelectionBox('ye', $content['birth_year']); break; default: // Default is the US date format... :) // Month - $content['dob'] .= addSelectionBox('month', $content['birth_month']); + $content['dob'] .= addSelectionBox('mo', $content['birth_month']); // Day - $content['dob'] .= addSelectionBox('day', $content['birth_day']); + $content['dob'] .= addSelectionBox('da', $content['birth_day']); // Year - $content['dob'] .= addSelectionBox('year', $content['birth_year']); + $content['dob'] .= addSelectionBox('ye', $content['birth_year']); break; } // END - if - $content['max_receive_list'] = addMaxReceiveList('member', $content['max_mails'], true); + $content['max_receive_list'] = addMaxReceiveList('member', $content['max_mails']); if (isExtensionActive('country')) { - // Generate selection box - $OUT = ""; + + // Generate selection box + $OUT = ''; $content['country'] = $OUT; } else { // Ouput default input box - $content['country'] = ""; + $content['country'] = ''; } // Load template - loadTemplate('member_mydata_edit', false, $content); + loadTemplate('member_mydata_edit', FALSE, $content); } break; case 'save': // Save entered data - // Load old email / password: 0 1 2 - $result = SQL_QUERY_ESC("SELECT `email`, `password`, `last_update` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1", - array(getUserId()), __FILE__, __LINE__); - // Get line - $content = merge_array($content, SQL_FETCHARRAY($result, 0, false)); + $content = merge_array($content, getUserDataArray()); - // Free result - SQL_FREERESULT($result); - - $content['last_change'] = $content['last_update'] + getConfig('profile_lock'); + // Calculate time to check + $content['update_check'] = $content['last_update'] + getProfileLock(); // How far is last change on his profile away from now? - if (($content['last_change'] > time()) && (!isAdmin()) && (getConfig('profile_lock') > 0)) { - $content['last_change'] = generateDateTime($content['last_change'] + getConfig('profile_lock'), 0); + if (($content['update_check'] > time()) && (!isAdmin()) && (getProfileLock() > 0)) { // You cannot change your account - loadTemplate('member_mydata_locked'); + $content['update_check'] = generateDateTime($content['update_check'] + getProfileLock(), 0); + + displayMessage($content['update_check']); } elseif ((!isEmailValid(postRequestElement('email'))) && (!isAdmin())) { // Invalid email address! - loadTemplate('admin_settings_saved', false, getMessage('INVALID_EMAIL_ADDRESS_ENTERED')); + displayMessage('{--INVALID_EMAIL_ENTERED--}'); + } elseif ((isExtensionInstalledAndNewer('other', '0.3.0')) && (isCheckDoubleEmailEnabled()) && (!isAdmin()) && (isEmailTaken(postRequestElement('email')))) { + // Email address is already registered + displayMessage('{--MEMBER_EMAIL_IS_ALREADY_REGISTERED--}'); } else { // Generate hash - $hash = generateHash(postRequestElement('pass1'), substr($content['password'], 0, -40)); - if ((($hash == $content['password']) || (postRequestElement('pass1') == postRequestElement('pass2'))) && (isPostRequestElementSet('pass1'))) { + $hash = generateHash(postRequestElement('password1'), substr($content['password'], 0, -40)); + if ((($hash == $content['password']) || (postRequestElement('password1') == postRequestElement('password2'))) && (isPostRequestElementSet('password1'))) { // Only on simple changes normal mode is active = no email or password changed - $mode = 'normal'; $AND = ''; + $mode = 'normal'; + $AND = ''; // Did the user changed the password? - if ($hash != $content['password']) { $AND = ", `password`='".$hash."'"; $mode = 'pass'; } + if ($hash != $content['password']) { + // Yes + $AND = ",`password`='" . $hash . "'"; + $mode = 'password'; + } // END - if - // Or did he changed his password? + // Or did he changed his email address? if (postRequestElement('email') != $content['email']) { - // Jupp + // Yes, but is it maybe blacklisted? + $filterData = array( + 'init_done' => TRUE, + 'post_data' => postRequestArray(), + 'blacklisted' => '', + 'message' => '{--PRE_UPDATE_USER_DATA_FAILED--}', + ); + $filterData = runFilterChain('pre_update_user_data', $filterData); + + // Is it blacklisted? + if ($filterData['init_done'] === FALSE) { + // Found something blacklisted + displayMessage($filterData['message']); + return; + } // END - if + if ($mode == 'normal') { $mode = 'email'; } else { $mode .= ';email'; } - setRequestPostElement('old_email', $content['email']); + setPostRequestElement('old_email', $content['email']); } // END - if // Update member's profile @@ -248,11 +274,17 @@ LIMIT 1", SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET - `gender`='%s', `surname`='%s', `family`='%s', + `gender`='%s', + `surname`='%s', + `family`='%s', `street_nr`='%s', - `country_code`=%s, `zip`=%s, `city`='%s', + `country_code`=%s, + `zip`=%s, + `city`='%s', `email`='%s', - `birth_day`=%s, `birth_month`=%s, `birth_year`=%s, + `birth_day`=%s, + `birth_month`=%s, + `birth_year`=%s, `max_mails`='%s', `last_update`=UNIX_TIMESTAMP()".$AND.", `notified`='N', @@ -273,18 +305,24 @@ LIMIT 1", bigintval(postRequestElement('month')), bigintval(postRequestElement('year')), bigintval(postRequestElement('max_mails')), - getUserId() + getMemberId() ), __FILE__, __LINE__); } else { // Old way SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET - `gender`='%s', `surname`='%s', `family`='%s', + `gender`='%s', + `surname`='%s', + `family`='%s', `street_nr`='%s', - `country`='%s', `zip`=%s, `city`='%s', + `country`='%s', + `zip`=%s, + `city`='%s', `email`='%s', - `birth_day`=%s, `birth_month`=%s, `birth_year`=%s, + `birth_day`=%s, + `birth_month`=%s, + `birth_year`=%s, `max_mails`='%s', `last_update`=UNIX_TIMESTAMP()".$AND.", `notified`='N', @@ -305,12 +343,12 @@ LIMIT 1", bigintval(postRequestElement('month')), bigintval(postRequestElement('year')), bigintval(postRequestElement('max_mails')), - getUserId() + getMemberId() ), __FILE__, __LINE__); } // Did something change? - if (SQL_AFFECTEDROWS() == 1) { + if (!SQL_HASZEROAFFECTED()) { // Get all modes ... $modes = explode(';', $mode); @@ -318,25 +356,25 @@ LIMIT 1", sendModeMails ('mydata', $modes); } else { // Something went wrong - loadTemplate('admin_settings_saved', false, getMessage('MEMBER_UPDATE_FAILED')); + displayMessage('{--MEMBER_UPDATE_FAILED--}'); } } else { // Entered wrong pass for updating profile - loadTemplate('admin_settings_saved', false, getMessage('MEBER_UPDATE_PWD_WRONG')); + displayMessage('{--MEBER_UPDATE_PWD_WRONG--}'); } } break; case 'notify': // Switch off notfication - SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `notified`='N', `last_update`=UNIX_TIMESTAMP() WHERE `userid`=%s LIMIT 1", - array(getUserId()), __FILE__, __LINE__); - $URL = 'modules.php?module=login&what=welcome&code=' . urlencode(getMessage('PROFILE_UPDATED')); + SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `notified`='N',`last_update`=UNIX_TIMESTAMP() WHERE `userid`=%s LIMIT 1", + array(getMemberId()), __FILE__, __LINE__); + $url = 'modules.php?module=login&what=mydata&code=' . getCode('PROFILE_UPDATED'); break; } // END - switch -if (!empty($URL)) { +if (!empty($url)) { // Load generated URL - redirectToUrl($URL); + redirectToUrl($url); } // END - if // [EOF]