original_string: public static function update_picture(stdClass $usernew, $filemanageroptions = array()) {
          global $CFG, $DB;
          require_once("$CFG->libdir/gdlib.php");
  
          $context = context_user::instance($usernew->id, MUST_EXIST);
          $user = core_user::get_user($usernew->id, 'id, picture', MUST_EXIST);
  
          $newpicture = $user->picture;
          // Get file_storage to process files.
          $fs = get_file_storage();
          if (!empty($usernew->deletepicture)) {
              // The user has chosen to delete the selected users picture.
              $fs->delete_area_files($context->id, 'user', 'icon'); // Drop all images in area.
              $newpicture = 0;
  
          } else {
              // Save newly uploaded file, this will avoid context mismatch for newly created users.
              file_save_draft_area_files($usernew->imagefile, $context->id, 'user', 'newicon', 0, $filemanageroptions);
              if (($iconfiles = $fs->get_area_files($context->id, 'user', 'newicon')) && count($iconfiles) == 2) {
                  // Get file which was uploaded in draft area.
                  foreach ($iconfiles as $file) {
                      if (!$file->is_directory()) {
                          break;
                      }
                  }
                  // Copy file to temporary location and the send it for processing icon.
                  if ($iconfile = $file->copy_content_to_temp()) {
                      // There is a new image that has been uploaded.
                      // Process the new image and set the user to make use of it.
                      // NOTE: Uploaded images always take over Gravatar.
                      $newpicture = (int)process_new_icon($context, 'user', 'icon', 0, $iconfile);
                      // Delete temporary file.
                      @unlink($iconfile);
                      // Remove uploaded file.
                      $fs->delete_area_files($context->id, 'user', 'newicon');
                  } else {
                      // Something went wrong while creating temp file.
                      // Remove uploaded file.
                      $fs->delete_area_files($context->id, 'user', 'newicon');
                      return false;
                  }
              }
          }
  
          if ($newpicture != $user->picture) {
              $DB->set_field('user', 'picture', $newpicture, array('id' => $user->id));
              return true;
          } else {
              return false;
          }
      }
code: public static function update_picture(stdClass $usernew, $filemanageroptions = array()) {
          global $CFG, $DB;
          require_once("$CFG->libdir/gdlib.php");
  
          $context = context_user::instance($usernew->id, MUST_EXIST);
          $user = core_user::get_user($usernew->id, 'id, picture', MUST_EXIST);
  
          $newpicture = $user->picture;
          // Get file_storage to process files.
          $fs = get_file_storage();
          if (!empty($usernew->deletepicture)) {
              // The user has chosen to delete the selected users picture.
              $fs->delete_area_files($context->id, 'user', 'icon'); // Drop all images in area.
              $newpicture = 0;
  
          } else {
              // Save newly uploaded file, this will avoid context mismatch for newly created users.
              file_save_draft_area_files($usernew->imagefile, $context->id, 'user', 'newicon', 0, $filemanageroptions);
              if (($iconfiles = $fs->get_area_files($context->id, 'user', 'newicon')) && count($iconfiles) == 2) {
                  // Get file which was uploaded in draft area.
                  foreach ($iconfiles as $file) {
                      if (!$file->is_directory()) {
                          break;
                      }
                  }
                  // Copy file to temporary location and the send it for processing icon.
                  if ($iconfile = $file->copy_content_to_temp()) {
                      // There is a new image that has been uploaded.
                      // Process the new image and set the user to make use of it.
                      // NOTE: Uploaded images always take over Gravatar.
                      $newpicture = (int)process_new_icon($context, 'user', 'icon', 0, $iconfile);
                      // Delete temporary file.
                      @unlink($iconfile);
                      // Remove uploaded file.
                      $fs->delete_area_files($context->id, 'user', 'newicon');
                  } else {
                      // Something went wrong while creating temp file.
                      // Remove uploaded file.
                      $fs->delete_area_files($context->id, 'user', 'newicon');
                      return false;
                  }
              }
          }
  
          if ($newpicture != $user->picture) {
              $DB->set_field('user', 'picture', $newpicture, array('id' => $user->id));
              return true;
          } else {
              return false;
          }
      }
code_tokens: public static function update_picture ( stdClass $ usernew , $ filemanageroptions = array ( ) ) { global $ CFG , $ DB ; require_once ( "$CFG->libdir/gdlib.php" ) ; $ context = context_user :: instance ( $ usernew -> id , MUST_EXIST ) ; $ user = core_user :: get_user ( $ usernew -> id , 'id, picture' , MUST_EXIST ) ; $ newpicture = $ user -> picture ; // Get file_storage to process files. $ fs = get_file_storage ( ) ; if ( ! empty ( $ usernew -> deletepicture ) ) { // The user has chosen to delete the selected users picture. $ fs -> delete_area_files ( $ context -> id , 'user' , 'icon' ) ; // Drop all images in area. $ newpicture = 0 ; } else { // Save newly uploaded file, this will avoid context mismatch for newly created users. file_save_draft_area_files ( $ usernew -> imagefile , $ context -> id , 'user' , 'newicon' , 0 , $ filemanageroptions ) ; if ( ( $ iconfiles = $ fs -> get_area_files ( $ context -> id , 'user' , 'newicon' ) ) && count ( $ iconfiles ) == 2 ) { // Get file which was uploaded in draft area. foreach ( $ iconfiles as $ file ) { if ( ! $ file -> is_directory ( ) ) { break ; } } // Copy file to temporary location and the send it for processing icon. if ( $ iconfile = $ file -> copy_content_to_temp ( ) ) { // There is a new image that has been uploaded. // Process the new image and set the user to make use of it. // NOTE: Uploaded images always take over Gravatar. $ newpicture = ( int ) process_new_icon ( $ context , 'user' , 'icon' , 0 , $ iconfile ) ; // Delete temporary file. @ unlink ( $ iconfile ) ; // Remove uploaded file. $ fs -> delete_area_files ( $ context -> id , 'user' , 'newicon' ) ; } else { // Something went wrong while creating temp file. // Remove uploaded file. $ fs -> delete_area_files ( $ context -> id , 'user' , 'newicon' ) ; return false ; } } } if ( $ newpicture != $ user -> picture ) { $ DB -> set_field ( 'user' , 'picture' , $ newpicture , array ( 'id' => $ user -> id ) ) ; return true ; } else { return false ; } }
docstring: Updates the provided users profile picture based upon the expected fields returned from the edit or edit_advanced forms.
  
  @param stdClass $usernew An object that contains some information about the user being updated
  @param array $filemanageroptions
  @return bool True if the user was updated, false if it stayed the same.
docstring_tokens: Updates the provided users profile picture based upon the expected fields returned from the edit or edit_advanced forms .