diff options
author | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-03-03 17:53:05 +0000 |
---|---|---|
committer | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-03-03 17:53:05 +0000 |
commit | 4766f36a4d74924f21ff329c4318ce4e069ffa04 (patch) | |
tree | 969b84632f2a8b0db79788a8a6db8e41d63e5cb4 /mod/profile/actions/cropicon.php | |
parent | 57a217fd6b708844407486046a1faa23b46cac08 (diff) | |
download | elgg-4766f36a4d74924f21ff329c4318ce4e069ffa04.tar.gz elgg-4766f36a4d74924f21ff329c4318ce4e069ffa04.tar.bz2 |
Pulled in the interface changes.
git-svn-id: http://code.elgg.org/elgg/trunk@5257 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/profile/actions/cropicon.php')
-rw-r--r-- | mod/profile/actions/cropicon.php | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/mod/profile/actions/cropicon.php b/mod/profile/actions/cropicon.php new file mode 100644 index 000000000..f86799ccf --- /dev/null +++ b/mod/profile/actions/cropicon.php @@ -0,0 +1,80 @@ +<?php + + /** + * Elgg profile plugin upload new user icon action + * + * @package ElggProfile + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + */ + + gatekeeper(); + + $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); + + // username is set in form which ensures the page owner is set + $user = page_owner_entity(); + + if (!$user || !$user->canEdit()) { + register_error(elgg_echo("profile:icon:noaccess")); + forward(); + } + + $filehandler = new ElggFile(); + $filehandler->owner_guid = $user->getGUID(); + $filehandler->setFilename("profile/" . $user->username . "master" . ".jpg"); + $filename = $filehandler->getFilenameOnFilestore(); + + $topbar = get_resized_image_from_existing_file($filename,16,16, true, $x1, $y1, $x2, $y2); + $tiny = get_resized_image_from_existing_file($filename,25,25, true, $x1, $y1, $x2, $y2); + $small = get_resized_image_from_existing_file($filename,40,40, true, $x1, $y1, $x2, $y2); + $medium = get_resized_image_from_existing_file($filename,100,100, true, $x1, $y1, $x2, $y2); + + if ($small !== false + && $medium !== false + && $tiny !== false) { + + $filehandler = new ElggFile(); + $filehandler->owner_guid = $user->getGUID(); + $filehandler->setFilename("profile/" . $user->username . "medium.jpg"); + $filehandler->open("write"); + $filehandler->write($medium); + $filehandler->close(); + $filehandler->setFilename("profile/" . $user->username . "small.jpg"); + $filehandler->open("write"); + $filehandler->write($small); + $filehandler->close(); + $filehandler->setFilename("profile/" . $user->username . "tiny.jpg"); + $filehandler->open("write"); + $filehandler->write($tiny); + $filehandler->close(); + $filehandler->setFilename("profile/" . $user->username . "topbar.jpg"); + $filehandler->open("write"); + $filehandler->write($topbar); + $filehandler->close(); + + $user->x1 = $x1; + $user->x2 = $x2; + $user->y1 = $y1; + $user->y2 = $y2; + + $user->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 = $vars['url'] . "pg/profile/{$user->username}/editicon/"; + + if (isloggedin()) forward($url); + +?> |