public static function update_user_profile_image($userid, $url) {
        global $CFG, $DB;

        require_once($CFG->libdir . '/filelib.php');
        require_once($CFG->libdir . '/gdlib.php');

        $fs = get_file_storage();

        $context = \context_user::instance($userid, MUST_EXIST);
        $fs->delete_area_files($context->id, 'user', 'newicon');

        $filerecord = array(
            'contextid' => $context->id,
            'component' => 'user',
            'filearea' => 'newicon',
            'itemid' => 0,
            'filepath' => '/'
        );

        $urlparams = array(
            'calctimeout' => false,
            'timeout' => 5,
            'skipcertverify' => true,
            'connecttimeout' => 5
        );

        try {
            $fs->create_file_from_url($filerecord, $url, $urlparams);
        } catch (\file_exception $e) {
            return get_string($e->errorcode, $e->module, $e->a);
        }

        $iconfile = $fs->get_area_files($context->id, 'user', 'newicon', false, 'itemid', false);

        // There should only be one.
        $iconfile = reset($iconfile);

        // Something went wrong while creating temp file - remove the uploaded file.
        if (!$iconfile = $iconfile->copy_content_to_temp()) {
            $fs->delete_area_files($context->id, 'user', 'newicon');
            return self::PROFILE_IMAGE_UPDATE_FAILED;
        }

        // Copy file to temporary location and the send it for processing icon.
        $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');
        // Set the user's picture.
        $DB->set_field('user', 'picture', $newpicture, array('id' => $userid));
        return self::PROFILE_IMAGE_UPDATE_SUCCESSFUL;
    }
public static function update_user_profile_image($userid, $url) {
        global $CFG, $DB;

        require_once($CFG->libdir . '/filelib.php');
        require_once($CFG->libdir . '/gdlib.php');

        $fs = get_file_storage();

        $context = \context_user::instance($userid, MUST_EXIST);
        $fs->delete_area_files($context->id, 'user', 'newicon');

        $filerecord = array(
            'contextid' => $context->id,
            'component' => 'user',
            'filearea' => 'newicon',
            'itemid' => 0,
            'filepath' => '/'
        );

        $urlparams = array(
            'calctimeout' => false,
            'timeout' => 5,
            'skipcertverify' => true,
            'connecttimeout' => 5
        );

        try {
            $fs->create_file_from_url($filerecord, $url, $urlparams);
        } catch (\file_exception $e) {
            return get_string($e->errorcode, $e->module, $e->a);
        }

        $iconfile = $fs->get_area_files($context->id, 'user', 'newicon', false, 'itemid', false);

        // There should only be one.
        $iconfile = reset($iconfile);

        // Something went wrong while creating temp file - remove the uploaded file.
        if (!$iconfile = $iconfile->copy_content_to_temp()) {
            $fs->delete_area_files($context->id, 'user', 'newicon');
            return self::PROFILE_IMAGE_UPDATE_FAILED;
        }

        // Copy file to temporary location and the send it for processing icon.
        $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');
        // Set the user's picture.
        $DB->set_field('user', 'picture', $newpicture, array('id' => $userid));
        return self::PROFILE_IMAGE_UPDATE_SUCCESSFUL;
    }
public static function update_user_profile_image ( $ userid , $ url ) { global $ CFG , $ DB ; require_once ( $ CFG -> libdir . '/filelib.php' ) ; require_once ( $ CFG -> libdir . '/gdlib.php' ) ; $ fs = get_file_storage ( ) ; $ context = \ context_user :: instance ( $ userid , MUST_EXIST ) ; $ fs -> delete_area_files ( $ context -> id , 'user' , 'newicon' ) ; $ filerecord = array ( 'contextid' => $ context -> id , 'component' => 'user' , 'filearea' => 'newicon' , 'itemid' => 0 , 'filepath' => '/' ) ; $ urlparams = array ( 'calctimeout' => false , 'timeout' => 5 , 'skipcertverify' => true , 'connecttimeout' => 5 ) ; try { $ fs -> create_file_from_url ( $ filerecord , $ url , $ urlparams ) ; } catch ( \ file_exception $ e ) { return get_string ( $ e -> errorcode , $ e -> module , $ e -> a ) ; } $ iconfile = $ fs -> get_area_files ( $ context -> id , 'user' , 'newicon' , false , 'itemid' , false ) ; // There should only be one. $ iconfile = reset ( $ iconfile ) ; // Something went wrong while creating temp file - remove the uploaded file. if ( ! $ iconfile = $ iconfile -> copy_content_to_temp ( ) ) { $ fs -> delete_area_files ( $ context -> id , 'user' , 'newicon' ) ; return self :: PROFILE_IMAGE_UPDATE_FAILED ; } // Copy file to temporary location and the send it for processing icon. $ 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' ) ; // Set the user's picture. $ DB -> set_field ( 'user' , 'picture' , $ newpicture , array ( 'id' => $ userid ) ) ; return self :: PROFILE_IMAGE_UPDATE_SUCCESSFUL ; }
Updates the users profile image.

@param int $userid the id of the user
@param string $url the url of the image
@return bool|string true if successful, else a string explaining why it failed
Updates the users profile image .