aboutsummaryrefslogtreecommitdiff
path: root/mod/profile/actions/iconupload.php
blob: f1d290694971cbff99b31076b39b055ff8a6fd34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?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();
	
	$user = page_owner_entity();
	if (!$user)
		$user = $_SESSION['user'];
		
	// If we were given a correct icon
		if (
				(isloggedin()) &&
				($user) &&
				($user->canEdit())
			) {
				
				
				$topbar = get_resized_image_from_uploaded_file('profileicon',16,16, true);
				$tiny = get_resized_image_from_uploaded_file('profileicon',25,25, true);
				$small = get_resized_image_from_uploaded_file('profileicon',40,40, true);
				$medium = get_resized_image_from_uploaded_file('profileicon',100,100, true);
				$large = get_resized_image_from_uploaded_file('profileicon',200,200);
				$master = get_resized_image_from_uploaded_file('profileicon',550,550);
				
				if ($small !== false
					&& $medium !== false
					&& $large !== false
					&& $tiny !== false) {
				
					$filehandler = new ElggFile();
					$filehandler->owner_guid = $user->getGUID();
					$filehandler->setFilename("profile/" . $user->username . "large.jpg");
					$filehandler->open("write");
					$filehandler->write($large);
					$filehandler->close();
					$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();
					$filehandler->setFilename("profile/" . $user->username . "master.jpg");
					$filehandler->open("write");
                    $filehandler->write($master);
					$filehandler->close();
					
					$user->icontime = time();
					
					system_message(elgg_echo("profile:icon:uploaded"));
					
					trigger_elgg_event('profileiconupdate',$user->type,$user);
					
					//add to river
					add_to_river('river/user/default/profileiconupdate','update',$user->guid,$user->guid);
				
				} else {
					system_message(elgg_echo("profile:icon:notfound"));					
				}
				
			} else {
				
				system_message(elgg_echo("profile:icon:notfound"));
				
			}
			
	    //forward the user back to the upload page to crop
	    
	    $url = "pg/profile/{$user->username}/editicon/";
			
		if (isloggedin()) forward($url);

?>