aboutsummaryrefslogtreecommitdiff
path: root/mod/profile
diff options
context:
space:
mode:
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-12-18 20:15:24 +0000
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-12-18 20:15:24 +0000
commit9ac841f26e05af3515643e44eb5fde30bcfb1b75 (patch)
tree65db9ad52cd03922e2451f85b8e8e56c2b4770fe /mod/profile
parent569f19d8ff89539eb8d38b1ca1b07a2baa41852c (diff)
downloadelgg-9ac841f26e05af3515643e44eb5fde30bcfb1b75.tar.gz
elgg-9ac841f26e05af3515643e44eb5fde30bcfb1b75.tar.bz2
moved the avatar forms and actions into core from profile plugin
git-svn-id: http://code.elgg.org/elgg/trunk@7670 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/profile')
-rw-r--r--mod/profile/actions/cropicon.php73
-rw-r--r--mod/profile/actions/iconupload.php62
-rw-r--r--mod/profile/views/default/profile/editicon.php106
3 files changed, 4 insertions, 237 deletions
diff --git a/mod/profile/actions/cropicon.php b/mod/profile/actions/cropicon.php
deleted file mode 100644
index c65b5f56d..000000000
--- a/mod/profile/actions/cropicon.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/**
- * Elgg profile plugin upload new user icon action
- *
- * @package ElggProfile
- */
-
-$profile_username = get_input('username');
-$profile_owner = get_user_by_username($profile_username);
-
-if (!$profile_owner || !($profile_owner instanceof ElggUser) || !$profile_owner->canEdit()) {
- register_error(elgg_echo('profile:icon:fail'));
- forward(REFERER);
-}
-
-$x1 = (int) get_input('x_1',0);
-$y1 = (int) get_input('y_1',0);
-$x2 = (int) get_input('x_2',0);
-$y2 = (int) get_input('y_2',0);
-
-$filehandler = new ElggFile();
-$filehandler->owner_guid = $profile_owner->getGUID();
-$filehandler->setFilename("profile/" . $profile_owner->guid . "master" . ".jpg");
-$filename = $filehandler->getFilenameOnFilestore();
-
-$topbar = get_resized_image_from_existing_file($filename, 16, 16, true, $x1, $y1, $x2, $y2, TRUE);
-$tiny = get_resized_image_from_existing_file($filename, 25, 25, true, $x1, $y1, $x2, $y2, TRUE);
-$small = get_resized_image_from_existing_file($filename, 40, 40, true, $x1, $y1, $x2, $y2, TRUE);
-$medium = get_resized_image_from_existing_file($filename, 100, 100, true, $x1, $y1, $x2, $y2, TRUE);
-$large = get_resized_image_from_existing_file($filename, 550, 550, true, $x1, $y1, $x2, $y2);
-
-if ($tiny !== FALSE && $small !== FALSE && $medium !== FALSE && $large !== FALSE) {
- $filehandler = new ElggFile();
- $filehandler->owner_guid = $profile_owner->getGUID();
- $filehandler->setFilename("profile/" . $profile_owner->guid . "large.jpg");
- $filehandler->open("write");
- $filehandler->write($large);
- $filehandler->close();
- $filehandler->setFilename("profile/" . $profile_owner->guid . "medium.jpg");
- $filehandler->open("write");
- $filehandler->write($medium);
- $filehandler->close();
- $filehandler->setFilename("profile/" . $profile_owner->guid . "small.jpg");
- $filehandler->open("write");
- $filehandler->write($small);
- $filehandler->close();
- $filehandler->setFilename("profile/" . $profile_owner->guid . "tiny.jpg");
- $filehandler->open("write");
- $filehandler->write($tiny);
- $filehandler->close();
- $filehandler->setFilename("profile/" . $profile_owner->guid . "topbar.jpg");
- $filehandler->open("write");
- $filehandler->write($topbar);
- $filehandler->close();
-
- $profile_owner->x1 = $x1;
- $profile_owner->x2 = $x2;
- $profile_owner->y1 = $y1;
- $profile_owner->y2 = $y2;
-
- $profile_owner->icontime = time();
-
- system_message(elgg_echo("profile:icon:uploaded"));
-} else {
- register_error(elgg_echo("profile:icon:notfound"));
-}
-
-//forward the user back to the upload page to crop
-$url = elgg_get_site_url()."pg/profile/{$profile_owner->username}/edit/icon";
-
-if (isloggedin()) {
- forward($url);
-}
diff --git a/mod/profile/actions/iconupload.php b/mod/profile/actions/iconupload.php
deleted file mode 100644
index 546aa0e9c..000000000
--- a/mod/profile/actions/iconupload.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/**
- * Elgg profile plugin upload new user icon action
- *
- * @package ElggProfile
- */
-
-$profile_username = get_input('username');
-$profile_owner = get_user_by_username($profile_username);
-
-if (!$profile_owner || !($profile_owner instanceof ElggUser) || !$profile_owner->canEdit()) {
- register_error(elgg_echo('profile:icon:fail'));
- forward(REFERER);
-}
-
-$profile_owner_guid = $profile_owner->getGUID();
-
-//@todo make this configurable?
-$icon_sizes = array(
- 'topbar' => array('w'=>16, 'h'=>16, 'square'=>TRUE, 'upscale'=>TRUE),
- 'tiny' => array('w'=>25, 'h'=>25, 'square'=>TRUE, 'upscale'=>TRUE),
- 'small' => array('w'=>40, 'h'=>40, 'square'=>TRUE, 'upscale'=>TRUE),
- 'medium' => array('w'=>100, 'h'=>100, 'square'=>TRUE, 'upscale'=>TRUE),
- 'large' => array('w'=>200, 'h'=>200, 'square'=>FALSE, 'upscale'=>FALSE),
- 'master' => array('w'=>550, 'h'=>550, 'square'=>FALSE, 'upscale'=>FALSE)
-);
-
-// get the images and save their file handlers into an array
-// so we can do clean up if one fails.
-$files = array();
-foreach ($icon_sizes as $name => $size_info) {
- $resized = get_resized_image_from_uploaded_file('profileicon', $size_info['w'], $size_info['h'], $size_info['square'], $size_info['upscale']);
-
- if ($resized) {
- //@todo Make these actual entities. See exts #348.
- $file = new ElggFile();
- $file->owner_guid = $profile_owner_guid;
- $file->setFilename("profile/{$profile_owner_guid}{$name}.jpg");
- $file->open('write');
- $file->write($resized);
- $file->close();
- $files[] = $file;
- } else {
- // cleanup on fail
- foreach ($files as $file) {
- $file->delete();
- }
-
- system_message(elgg_echo('profile:icon:notfound'));
- forward(REFERER);
- }
-}
-
-$profile_owner->icontime = time();
-if (elgg_trigger_event('profileiconupdate', $profile_owner->type, $profile_owner)) {
- // pull this out into the river plugin.
- //add_to_river('river/user/default/profileiconupdate','update',$user->guid,$user->guid);
- system_message(elgg_echo("profile:icon:uploaded"));
-}
-
-//forward the user back to the upload page to crop
-forward(REFERER);
diff --git a/mod/profile/views/default/profile/editicon.php b/mod/profile/views/default/profile/editicon.php
index 9eeaecb4a..878ec504b 100644
--- a/mod/profile/views/default/profile/editicon.php
+++ b/mod/profile/views/default/profile/editicon.php
@@ -12,8 +12,6 @@
$currentuser = get_loggedin_user();
?>
<div id="edit_profile_avatar">
-<!-- grab the required js for icon cropping -->
-<script type="text/javascript" src="<?php echo elgg_get_site_url(); ?>mod/profile/views/default/js/jquery.imgareaselect-0.8.min.js"></script>
<p class="margin-top"><?php echo elgg_echo('profile:profilepictureinstructions'); ?></p>
@@ -30,112 +28,16 @@ $currentuser = get_loggedin_user();
</div>
<div id="avatar_upload">
- <form action="<?php echo elgg_get_site_url(); ?>action/profile/iconupload" method="post" enctype="multipart/form-data">
- <?php echo elgg_view('input/securitytoken'); ?>
- <input type="hidden" name="username" value="<?php echo $currentuser->username; ?>" />
- <p><label><?php echo elgg_echo("profile:editicon"); ?></label><br />
-
- <?php
-
- echo elgg_view("input/file",array('internalname' => 'profileicon'));
- ?>
- <br /><input type="submit" class="submit-button" value="<?php echo elgg_echo("upload"); ?>" />
- </p>
- </form>
+<?php
+ echo elgg_view_form('avatar/upload', array('enctype' => 'multipart/form-data'), array('entity' => $currentuser));
+?>
</div>
<div id="avatar_croppingtool">
<label><?php echo elgg_echo('profile:profilepicturecroppingtool'); ?></label><br />
-<p>
-<?php
- echo elgg_echo("profile:createicon:instructions");
-
- //display the current user photo
-
- $user_master_image = $currentuser->getIcon('master');
-
+<?php echo elgg_view_form('avatar/crop', array(), array('entity' => get_loggedin_user()));
?>
-</p>
-<script type="text/javascript">
-
- //function to display a preview of the users cropped section
- function preview(img, selection) {
- // catch for the first click on the image
- if (selection.width == 0 || selection.height == 0) {
- return;
- }
-
- var origWidth = $("#user_avatar").width(); //get the width of the users master photo
- var origHeight = $("#user_avatar").height(); //get the height of the users master photo
- var scaleX = 100 / selection.width;
- var scaleY = 100 / selection.height;
- $('#user_avatar_preview > img').css({
- width: Math.round(scaleX * origWidth) + 'px',
- height: Math.round(scaleY * origHeight) + 'px',
- marginLeft: '-' + Math.round(scaleX * selection.x1) + 'px',
- marginTop: '-' + Math.round(scaleY * selection.y1) + 'px'
- });
- }
-
- //variables for the newly cropped avatar
- //var $x1, $y1, $x2, $y2, $w, $h;
-
- function selectChange(img, selection){
-
- //populate the form with the correct coordinates once a user has cropped their image
- $('#x_1').val(selection.x1);
- $('#x_2').val(selection.x2);
- $('#y_1').val(selection.y1);
- $('#y_2').val(selection.y2);
-
- }
-
- $(document).ready(function () {
-
- //get the coordinates from the form
- /*
- var x_1 = $('#x_1').val();
- var x_2 = $('#x_2').val();
- var y_1 = $('#y_1').val();
- var y_2 = $('#y_2').val();
- var w = x_2 - x_1;
- var h = y_2 - y_1;
- selection = { x1: x_1, y1: y_1, x2: x_2, y2: y_2, width: w, height: h };
- */
-
- $('<div id="user_avatar_preview"><img src="<?php echo $user_master_image; ?>" /></div>')
- .insertAfter($('#user_avatar'));
-
- $('<div id="user_avatar_preview_title"><label><?php echo elgg_echo('profile:preview'); ?></label></div>').insertBefore($('#user_avatar_preview'));
- });
-
- $(window).load(function () {
-
- //this produces the coordinates
- $('#user_avatar').imgAreaSelect({ selectionOpacity: 0, onSelectEnd: selectChange });
- //show the preview
- $('#user_avatar').imgAreaSelect({ aspectRatio: '1:1', onSelectChange: preview });
-
- });
-
-</script>
-
-<p>
-<img id="user_avatar" src="<?php echo $user_master_image; ?>" alt="<?php echo elgg_echo("profile:icon"); ?>" />
-</p>
-
-<div class="clearfloat"></div>
-
-<form action="<?php echo elgg_get_site_url(); ?>action/profile/cropicon" method="post" />
- <?php echo elgg_view('input/securitytoken'); ?>
- <input type="hidden" name="username" value="<?php echo get_loggedin_user()->username; ?>" />
- <input type="hidden" name="x_1" value="<?php echo get_loggedin_user()->x1; ?>" id="x_1" />
- <input type="hidden" name="x_2" value="<?php echo get_loggedin_user()->x2; ?>" id="x_2" />
- <input type="hidden" name="y_1" value="<?php echo get_loggedin_user()->y1; ?>" id="y_1" />
- <input type="hidden" name="y_2" value="<?php echo get_loggedin_user()->y2; ?>" id="y_2" />
- <input type="submit" name="submit" value="<?php echo elgg_echo("profile:createicon"); ?>" />
-</form>
</div>
</div>