Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

MDL-41744 Users: Convert key to value in bulk upload

Menu profile field expects value, during bulk upload if value is passed by form
then options key is passed. So converting key to value if passed though form
  • Loading branch information...
commit 623b678c3e5f1438eee52b58cdbb08bca7414d0c 1 parent c7c613b
Rajesh Taneja rajeshtaneja authored
Showing with 18 additions and 4 deletions.
  1. +18 −4 admin/tool/uploaduser/index.php
22 admin/tool/uploaduser/index.php
View
@@ -98,12 +98,16 @@
$PRF_FIELDS = array();
-if ($prof_fields = $DB->get_records('user_info_field')) {
- foreach ($prof_fields as $prof_field) {
- $PRF_FIELDS[] = 'profile_field_'.$prof_field->shortname;
+if ($proffields = $DB->get_records('user_info_field')) {
+ foreach ($proffields as $key => $proffield) {
+ $profilefieldname = 'profile_field_'.$proffield->shortname;
+ $PRF_FIELDS[] = $profilefieldname;
+ // Re-index $proffields with key as shortname. This will be
+ // used while checking if profile data is key and needs to be converted (eg. menu profile field)
+ $proffields[$profilefieldname] = $proffield;
+ unset($proffields[$key]);
}
}
-unset($prof_fields);
if (empty($iid)) {
$mform1 = new admin_uploaduser_form1();
@@ -331,6 +335,16 @@
if (isset($formdata->$field)) {
// process templates
$user->$field = uu_process_template($formdata->$field, $user);
+
+ // Form contains key and later code expects value.
+ // Convert key to value for required profile fields.
+ require_once($CFG->dirroot.'/user/profile/field/'.$proffields[$field]->datatype.'/field.class.php');
+ $profilefieldclass = 'profile_field_'.$proffields[$field]->datatype;
+ $profilefield = new $profilefieldclass($proffields[$field]->id);
+ if (method_exists($profilefield, 'convert_external_data')) {
+ $user->$field = $profilefield->edit_save_data_preprocess($user->$field, null);
+ }
+
$formdefaults[$field] = true;
}
}
Please sign in to comment.
Something went wrong with that request. Please try again.