From d6384115de0b841da9e7adf6adf5e44edb10e47b Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos Date: Tue, 16 May 2017 10:22:34 -0500 Subject: [PATCH] Fix extrafield of type tag when save a user info #1941 --- main/inc/ajax/user_manager.ajax.php | 20 ++++++++++++++------ main/inc/lib/extra_field_value.lib.php | 2 +- main/inc/lib/usermanager.lib.php | 9 +++++---- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/main/inc/ajax/user_manager.ajax.php b/main/inc/ajax/user_manager.ajax.php index 46b9f5eeac..09283e167f 100755 --- a/main/inc/ajax/user_manager.ajax.php +++ b/main/inc/ajax/user_manager.ajax.php @@ -90,13 +90,22 @@ switch ($action) { } break; case 'search_tags': + header('Content-Type: application/json'); + + $result = ['items' => []]; + if (api_is_anonymous()) { - echo ''; - } else { - if (isset($_GET['tag']) && isset($_GET['field_id'])) { - echo UserManager::get_tags($_GET['tag'], $_GET['field_id'], 'json', '10'); - } + echo json_encode($result); + break; } + + if (!isset($_GET['q'], $_GET['field_id'])) { + echo json_encode($result); + break; + } + + $result['items'] = UserManager::get_tags($_GET['q'], $_GET['field_id'], null, '10'); + echo json_encode($result); break; case 'generate_api_key': if (api_is_anonymous()) { @@ -174,4 +183,3 @@ switch ($action) { echo ''; } exit; - diff --git a/main/inc/lib/extra_field_value.lib.php b/main/inc/lib/extra_field_value.lib.php index 434a5b4a94..def3fedcda 100755 --- a/main/inc/lib/extra_field_value.lib.php +++ b/main/inc/lib/extra_field_value.lib.php @@ -106,7 +106,7 @@ class ExtraFieldValue extends Model // Parse params. foreach ($extraFields as $fieldDetails) { - if ($fieldDetails['visible_to_self'] != 1) { + if ($fieldDetails['visible_to_self'] != 1 && !api_is_platform_admin(true, true)) { continue; } diff --git a/main/inc/lib/usermanager.lib.php b/main/inc/lib/usermanager.lib.php index 9626daede1..d1f949bb08 100755 --- a/main/inc/lib/usermanager.lib.php +++ b/main/inc/lib/usermanager.lib.php @@ -389,10 +389,11 @@ class UserManager UrlManager::add_user_to_url($userId, 1); } + $extra['item_id'] = $userId; + if (is_array($extra) && count($extra) > 0) { - foreach ($extra as $fname => $fvalue) { - self::update_extra_field_value($userId, $fname, $fvalue); - } + $courseFieldValue = new ExtraFieldValue('user'); + $courseFieldValue->saveFieldValues($extra); } else { // Create notify settings by default self::update_extra_field_value($userId, 'mail_notify_invitation', '1'); @@ -3475,7 +3476,7 @@ class UserManager $return = array(); if (Database::num_rows($result) > 0) { while ($row = Database::fetch_array($result, 'ASSOC')) { - $return[] = array('key' => $row['tag'], 'value' => $row['tag']); + $return[] = array('id' => $row['tag'], 'text' => $row['tag']); } } if ($return_format === 'json') {