id); if ($USER->id <> $user->id) { error("You can only edit your own information"); } /// If data submitted, then process and store. if (match_referer() && isset($HTTP_POST_VARS)) { $usernew = (object)$HTTP_POST_VARS; if (!find_form_errors($user, $usernew, $err) ) { $timenow = time(); if ($imagefile && $imagefile!="none") { $imageinfo = GetImageSize($imagefile); $image->width = $imageinfo[0]; $image->height = $imageinfo[1]; $image->type = $imageinfo[2]; switch ($image->type) { case 2: $im = ImageCreateFromJPEG($imagefile); break; case 3: $im = ImageCreateFromPNG($imagefile); break; default: error("Image must be in JPG or PNG format"); } if (function_exists("ImageCreateTrueColor")) { $im1 = ImageCreateTrueColor(100,100); $im2 = ImageCreateTrueColor(35,35); } else { $im1 = ImageCreate(100,100); $im2 = ImageCreate(35,35); } $cx = $image->width / 2; $cy = $image->height / 2; if ($image->width < $image->height) { $half = floor($image->width / 2.0); } else { $half = floor($image->height / 2.0); } if (!file_exists("$CFG->dataroot/users")) { mkdir("$CFG->dataroot/users", 0777); } if (!file_exists("$CFG->dataroot/users/$USER->id")) { mkdir("$CFG->dataroot/users/$USER->id", 0777); } ImageCopyBicubic($im1, $im, 0, 0, $cx-$half, $cy-$half, 100, 100, $half*2, $half*2); ImageCopyBicubic($im2, $im, 0, 0, $cx-$half, $cy-$half, 35, 35, $half*2, $half*2); // Draw borders over the top. $black1 = ImageColorAllocate ($im1, 0, 0, 0); $black2 = ImageColorAllocate ($im2, 0, 0, 0); ImageLine ($im1, 0, 0, 0, 99, $black1); ImageLine ($im1, 0, 99, 99, 99, $black1); ImageLine ($im1, 99, 99, 99, 0, $black1); ImageLine ($im1, 99, 0, 0, 0, $black1); ImageLine ($im2, 0, 0, 0, 34, $black2); ImageLine ($im2, 0, 34, 34, 34, $black2); ImageLine ($im2, 34, 34, 34, 0, $black2); ImageLine ($im2, 34, 0, 0, 0, $black2); ImageJpeg($im1, "$CFG->dataroot/users/$USER->id/f1.jpg", 90); ImageJpeg($im2, "$CFG->dataroot/users/$USER->id/f2.jpg", 95); $usernew->picture = "1"; } else { $usernew->picture = $user->picture; } $usernew->timemodified = time(); if (update_record("user", $usernew)) { add_to_log("Updated own profile", $course->id); redirect("view.php?id=$user->id&course=$course->id", "Changes saved"); } else { error("Could not update the user record ($user->id)"); } } } /// Otherwise fill and print the form. if ($course->category) { print_header("Edit user profile", "Edit user profile", "wwwroot/course/view.php?id=$course->id\">$course->shortname -> id\">Participants -> id&course=$course->id\">$USER->firstname $USER->lastname -> Edit profile", ""); } else { print_header("Edit user profile", "Edit user profile", "id&course=$course->id\">$USER->firstname $USER->lastname -> Edit profile", ""); } print_simple_box_start("center", "", "$THEME->cellheading"); echo "

User profile for $user->firstname $user->lastname

"; include("edit.html"); print_simple_box_end(); print_footer($course); /// FUNCTIONS //////////////////// function find_form_errors(&$user, &$usernew, &$err) { if (empty($usernew->email)) $err["email"] = "Missing email address"; else if (! validate_email($usernew->email)) $err["email"] = "Invalid email address, check carefully"; else if ($otheruser = get_record("user", "email", $usernew->email)) { if ($otheruser->id <> $user->id) { $err["email"] = "Email address already in use by someone else."; } } $user->email = $usernew->email; return count($err); } ?>