|
|
|
|
@ -58,16 +58,16 @@ function generate_open_id_form() { |
|
|
|
|
$("#div_api_key").html(datos); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function hide_icon_edit(element_html) { |
|
|
|
|
ident="#edit_image"; |
|
|
|
|
$(ident).hide(); |
|
|
|
|
} |
|
|
|
|
function show_icon_edit(element_html) { |
|
|
|
|
} |
|
|
|
|
function show_icon_edit(element_html) { |
|
|
|
|
ident="#edit_image"; |
|
|
|
|
$(ident).show(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
</script>'; |
|
|
|
|
|
|
|
|
|
//$interbreadcrumb[] = array('url' => '../auth/profile.php', 'name' => get_lang('ModifyProfile')); |
|
|
|
|
@ -124,28 +124,6 @@ if ($user_data !== false) { |
|
|
|
|
*/ |
|
|
|
|
$form = new FormValidator('profile', 'post', api_get_self()."?".str_replace('&fe=1', '', $_SERVER['QUERY_STRING']), null, array('style' => 'width: 70%; float: '.($text_dir == 'rtl' ? 'right;' : 'left;'))); |
|
|
|
|
|
|
|
|
|
/* Make sure this is the first submit on the form, even though it is hidden! |
|
|
|
|
* Otherwise, if a user has productions and presses ENTER to submit, he will |
|
|
|
|
* attempt to delete the first production in the list. */ |
|
|
|
|
//if (is_profile_editable()) { |
|
|
|
|
// $form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class="save"', array('style' => 'visibility:hidden;')); |
|
|
|
|
//} |
|
|
|
|
|
|
|
|
|
// SUBMIT (visible) |
|
|
|
|
/*if (is_profile_editable()) { |
|
|
|
|
$form->addElement('style_submit_button', 'apply_change', get_lang('SaveSettings'), 'class="save"'); |
|
|
|
|
} else { |
|
|
|
|
$form->freeze(); |
|
|
|
|
}*/ |
|
|
|
|
|
|
|
|
|
//THEME |
|
|
|
|
if (is_profile_editable() && api_get_setting('user_selected_theme') == 'true') { |
|
|
|
|
$form->addElement('select_theme', 'theme', get_lang('Theme')); |
|
|
|
|
if (api_get_setting('profile', 'theme') !== 'true') |
|
|
|
|
$form->freeze('theme'); |
|
|
|
|
$form->applyFilter('theme', 'trim'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (api_is_western_name_order()) { |
|
|
|
|
// FIRST NAME and LAST NAME |
|
|
|
|
$form->addElement('text', 'firstname', get_lang('FirstName'), array('size' => 40)); |
|
|
|
|
@ -193,11 +171,11 @@ if (api_get_setting('profile', 'email') !== 'true') { |
|
|
|
|
$form->freeze('email'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (api_get_setting('registration', 'email') == 'true' && api_get_setting('profile', 'email') == 'true') { |
|
|
|
|
if (api_get_setting('registration', 'email') == 'true' && api_get_setting('profile', 'email') == 'true') { |
|
|
|
|
$form->applyFilter('email', 'stripslashes'); |
|
|
|
|
$form->applyFilter('email', 'trim'); |
|
|
|
|
$form->addRule('email', get_lang('ThisFieldIsRequired'), 'required'); |
|
|
|
|
$form->addRule('email', get_lang('EmailWrong'), 'email'); |
|
|
|
|
$form->addRule('email', get_lang('EmailWrong'), 'email'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// OPENID URL |
|
|
|
|
@ -241,6 +219,16 @@ if (api_get_setting('profile', 'language') !== 'true') { |
|
|
|
|
$form->freeze('language'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//THEME |
|
|
|
|
if (is_profile_editable() && api_get_setting('user_selected_theme') == 'true') { |
|
|
|
|
$form->addElement('select_theme', 'theme', get_lang('Theme')); |
|
|
|
|
if (api_get_setting('profile', 'theme') !== 'true') { |
|
|
|
|
$form->freeze('theme'); |
|
|
|
|
} |
|
|
|
|
$form->applyFilter('theme', 'trim'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// EXTENDED PROFILE this make the page very slow! |
|
|
|
|
if (api_get_setting('extended_profile') == 'true') { |
|
|
|
|
if (!isset($_GET['type']) || (isset($_GET['type']) && $_GET['type'] == 'extended')) { |
|
|
|
|
@ -268,7 +256,7 @@ if (api_get_setting('extended_profile') == 'true') { |
|
|
|
|
|
|
|
|
|
// PASSWORD, if auth_source is platform |
|
|
|
|
if (is_platform_authentication() && is_profile_editable() && api_get_setting('profile', 'password') == 'true') { |
|
|
|
|
$form->addElement('password', 'password0', array(get_lang('Pass'), get_lang('Enter2passToChange')), array('size' => 40)); |
|
|
|
|
$form->addElement('password', 'password0', array(get_lang('Pass'), get_lang('Enter2passToChange')), array('size' => 40)); |
|
|
|
|
$form->addElement('password', 'password1', get_lang('NewPass'), array('size' => 40)); |
|
|
|
|
$form->addElement('password', 'password2', get_lang('Confirmation'), array('size' => 40)); |
|
|
|
|
// user must enter identical password twice so we can prevent some user errors |
|
|
|
|
@ -311,7 +299,7 @@ $form->setDefaults($user_data); |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Is user auth_source is platform ? |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* @return boolean if auth_source is platform |
|
|
|
|
*/ |
|
|
|
|
function is_platform_authentication() { |
|
|
|
|
@ -421,7 +409,7 @@ if ($form->validate()) { |
|
|
|
|
$wrong_current_password = false; |
|
|
|
|
// $user_data = $form->exportValues(); |
|
|
|
|
$user_data = $form->getSubmitValues(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// set password if a new one was provided |
|
|
|
|
if (!empty($user_data['password0'])) { |
|
|
|
|
if (check_user_password($user_data['password0'])) { |
|
|
|
|
@ -442,18 +430,18 @@ if ($form->validate()) { |
|
|
|
|
if (is_platform_authentication() && api_get_setting('allow_users_to_change_email_with_no_password') == 'false') { |
|
|
|
|
$allow_users_to_change_email_with_no_password = false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//If user sending the email to be changed (input available and not frozen ) |
|
|
|
|
if (api_get_setting('profile', 'email') == 'true') { |
|
|
|
|
if ($allow_users_to_change_email_with_no_password) { |
|
|
|
|
if (api_get_setting('profile', 'email') == 'true') { |
|
|
|
|
if ($allow_users_to_change_email_with_no_password) { |
|
|
|
|
if (!check_user_email($user_data['email'])) { |
|
|
|
|
$changeemail = $user_data['email']; |
|
|
|
|
//$_SESSION['change_email'] = 'success'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
//Normal behaviour |
|
|
|
|
if (!check_user_email($user_data['email']) && !empty($user_data['password0']) && !$wrong_current_password) { |
|
|
|
|
@ -462,34 +450,34 @@ if ($form->validate()) { |
|
|
|
|
|
|
|
|
|
if (!check_user_email($user_data['email']) && empty($user_data['password0'])){ |
|
|
|
|
$_SESSION['change_email'] = 'success'; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Upload picture if a new one is provided |
|
|
|
|
if ($_FILES['picture']['size']) { |
|
|
|
|
if ($_FILES['picture']['size']) { |
|
|
|
|
if ($new_picture = UserManager::update_user_picture(api_get_user_id(), $_FILES['picture']['name'], $_FILES['picture']['tmp_name'])) { |
|
|
|
|
$user_data['picture_uri'] = $new_picture; |
|
|
|
|
$_SESSION['image_uploaded'] = 'success'; |
|
|
|
|
$_SESSION['image_uploaded'] = 'success'; |
|
|
|
|
} |
|
|
|
|
} elseif (!empty($user_data['remove_picture'])) { |
|
|
|
|
// remove existing picture if asked |
|
|
|
|
UserManager::delete_user_picture(api_get_user_id()); |
|
|
|
|
$user_data['picture_uri'] = ''; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//Remove production |
|
|
|
|
|
|
|
|
|
//Remove production |
|
|
|
|
if (is_array($user_data['remove_production'])) { |
|
|
|
|
foreach (array_keys($user_data['remove_production']) as $production) { |
|
|
|
|
UserManager::remove_user_production(api_get_user_id(), urldecode($production)); |
|
|
|
|
} |
|
|
|
|
if ($production_list = UserManager::build_production_list(api_get_user_id(), true, true)) { |
|
|
|
|
if ($production_list = UserManager::build_production_list(api_get_user_id(), true, true)) { |
|
|
|
|
$form->insertElementBefore($form->createElement('static', null, null, $production_list), 'productions_list'); |
|
|
|
|
} |
|
|
|
|
$form->removeElement('productions_list'); |
|
|
|
|
$file_deleted = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// upload production if a new one is provided |
|
|
|
|
if ($_FILES['production']['size']) { |
|
|
|
|
@ -514,19 +502,19 @@ if ($form->validate()) { |
|
|
|
|
$user_data['openid'] = 'http://'.$my_user_openid; |
|
|
|
|
} |
|
|
|
|
$extras = array(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Checking the user language |
|
|
|
|
$languages = api_get_languages(); |
|
|
|
|
$languages = api_get_languages(); |
|
|
|
|
if (!in_array($user_data['language'], $languages['folder'])) { |
|
|
|
|
$user_data['language'] = api_get_setting('platformLanguage'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Only update values that are request by the "profile" setting |
|
|
|
|
$profile_list = api_get_setting('profile'); |
|
|
|
|
//Adding missing variables |
|
|
|
|
|
|
|
|
|
//Adding missing variables |
|
|
|
|
|
|
|
|
|
$available_values_to_modify = array(); |
|
|
|
|
foreach($profile_list as $key => $status) { |
|
|
|
|
foreach($profile_list as $key => $status) { |
|
|
|
|
if ($status == 'true') { |
|
|
|
|
switch($key) { |
|
|
|
|
case 'login': |
|
|
|
|
@ -534,7 +522,7 @@ if ($form->validate()) { |
|
|
|
|
break; |
|
|
|
|
case 'name': |
|
|
|
|
$available_values_to_modify[] = 'firstname'; |
|
|
|
|
$available_values_to_modify[] = 'lastname'; |
|
|
|
|
$available_values_to_modify[] = 'lastname'; |
|
|
|
|
break; |
|
|
|
|
case 'picture': |
|
|
|
|
$available_values_to_modify[] = 'picture_uri'; |
|
|
|
|
@ -542,13 +530,13 @@ if ($form->validate()) { |
|
|
|
|
default: |
|
|
|
|
$available_values_to_modify[] = $key; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//Fixing missing variables |
|
|
|
|
|
|
|
|
|
//Fixing missing variables |
|
|
|
|
$available_values_to_modify = array_merge($available_values_to_modify, array('competences', 'diplomas', 'openarea', 'teach', 'openid')); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// build SQL query |
|
|
|
|
$sql = "UPDATE $table_user SET"; |
|
|
|
|
unset($user_data['api_key_generate']); |
|
|
|
|
@ -570,24 +558,24 @@ if ($form->validate()) { |
|
|
|
|
$extras[$new_key] = $value; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
if (in_array($key, $available_values_to_modify)) { |
|
|
|
|
if (in_array($key, $available_values_to_modify)) { |
|
|
|
|
$sql .= " $key = '".Database::escape_string($value)."',"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//change email |
|
|
|
|
if ($allow_users_to_change_email_with_no_password) { |
|
|
|
|
if ($allow_users_to_change_email_with_no_password) { |
|
|
|
|
if (isset($changeemail) && in_array('email', $available_values_to_modify)) { |
|
|
|
|
$sql .= " email = '".Database::escape_string($changeemail)."',"; |
|
|
|
|
} |
|
|
|
|
if (isset($password) && in_array('password', $available_values_to_modify)) { |
|
|
|
|
$password = api_get_encrypted_password($password); |
|
|
|
|
$sql .= " password = '".Database::escape_string($password)."'"; |
|
|
|
|
} else { |
|
|
|
|
} else { |
|
|
|
|
// remove trailing , from the query we have so far |
|
|
|
|
$sql = rtrim($sql, ','); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
//normal behaviour |
|
|
|
|
if(empty($changeemail) && isset($password)) { |
|
|
|
|
@ -595,7 +583,7 @@ if ($form->validate()) { |
|
|
|
|
} |
|
|
|
|
if (isset($changeemail) && !isset($password) && in_array('email', $available_values_to_modify)) { |
|
|
|
|
$sql .= " email = '".Database::escape_string($changeemail)."'"; |
|
|
|
|
} elseif (isset($password) && isset($changeemail) && in_array('email', $available_values_to_modify) && in_array('password', $available_values_to_modify)) { |
|
|
|
|
} elseif (isset($password) && isset($changeemail) && in_array('email', $available_values_to_modify) && in_array('password', $available_values_to_modify)) { |
|
|
|
|
$sql .= " email = '".Database::escape_string($changeemail)."',"; |
|
|
|
|
$password = api_get_encrypted_password($password); |
|
|
|
|
$sql .= " password = '".Database::escape_string($password)."'"; |
|
|
|
|
@ -605,7 +593,7 @@ if ($form->validate()) { |
|
|
|
|
} else { |
|
|
|
|
// remove trailing , from the query we have so far |
|
|
|
|
$sql = rtrim($sql, ','); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (api_get_setting('profile', 'officialcode') == 'true' && isset($user_data['official_code'])) { |
|
|
|
|
$sql .= ", official_code = '".Database::escape_string($user_data['official_code'])."'"; |
|
|
|
|
@ -613,12 +601,12 @@ if ($form->validate()) { |
|
|
|
|
|
|
|
|
|
$sql .= " WHERE user_id = '".api_get_user_id()."'"; |
|
|
|
|
Database::query($sql); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// User tag process |
|
|
|
|
//1. Deleting all user tags |
|
|
|
|
$list_extra_field_type_tag = UserManager::get_all_extra_field_by_type(UserManager::USER_FIELD_TYPE_TAG); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (is_array($list_extra_field_type_tag) && count($list_extra_field_type_tag)>0) { |
|
|
|
|
foreach ($list_extra_field_type_tag as $id) { |
|
|
|
|
UserManager::delete_user_tags(api_get_user_id(), $id); |
|
|
|
|
@ -626,19 +614,19 @@ if ($form->validate()) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//2. Update the extra fields and user tags if available |
|
|
|
|
|
|
|
|
|
if (is_array($extras) && count($extras)> 0) { |
|
|
|
|
|
|
|
|
|
if (is_array($extras) && count($extras)> 0) { |
|
|
|
|
foreach ($extras as $key => $value) { |
|
|
|
|
//3. Tags are process in the UserManager::update_extra_field_value by the UserManager::process_tags function |
|
|
|
|
UserManager::update_extra_field_value(api_get_user_id(), $key, $value); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// re-init the system to take new settings into account |
|
|
|
|
$_SESSION['_user']['uidReset'] = true; |
|
|
|
|
$_SESSION['noredirection'] = true; |
|
|
|
|
$_SESSION['profile_update'] = 'success'; |
|
|
|
|
$url = api_get_self()."?{$_SERVER['QUERY_STRING']}".($filtered_extension && strpos($_SERVER['QUERY_STRING'], '&fe=1') === false ? '&fe=1' : ''); |
|
|
|
|
$url = api_get_self()."?{$_SERVER['QUERY_STRING']}".($filtered_extension && strpos($_SERVER['QUERY_STRING'], '&fe=1') === false ? '&fe=1' : ''); |
|
|
|
|
header("Location: ".$url); |
|
|
|
|
exit; |
|
|
|
|
} |
|
|
|
|
@ -725,13 +713,13 @@ $url_big_image = $big_image.'?rnd='.time(); |
|
|
|
|
|
|
|
|
|
$show_delete_account_button = api_get_setting('platform_unsubscribe_allowed') == 'true' ? true : false; |
|
|
|
|
|
|
|
|
|
if (api_get_setting('allow_social_tool') == 'true') { |
|
|
|
|
if (api_get_setting('allow_social_tool') == 'true') { |
|
|
|
|
echo '<div class="row-fluid">'; |
|
|
|
|
echo '<div class="span3">'; |
|
|
|
|
echo SocialManager::show_social_menu('home', null, api_get_user_id(), false, $show_delete_account_button); |
|
|
|
|
echo '</div>'; |
|
|
|
|
echo '<div class="span9">'; |
|
|
|
|
$form->display(); |
|
|
|
|
$form->display(); |
|
|
|
|
echo '</div>'; |
|
|
|
|
} else { |
|
|
|
|
// Style position:absolute has been removed for Opera-compatibility. |
|
|
|
|
|