diff options
Diffstat (limited to 'mod/profile')
-rw-r--r-- | mod/profile/actions/cropicon.php | 73 | ||||
-rw-r--r-- | mod/profile/actions/iconupload.php | 62 | ||||
-rw-r--r-- | mod/profile/views/default/profile/editicon.php | 106 |
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> |