Remove old images and logos
[elgg.git] / units / icons / function_actions.php
blob500077cc529fa5a3e01df2b32f7bcd69843cdfad
1 <?php
3 // Action parser for icons
5 global $page_owner;
7 // Edit existing icons ...
8 if (isset($_POST['action']) && $_POST['action'] == "icons:edit" && logged_on && run("permissions:check", "uploadicons")) {
10 // Set a new default!
12 if (isset($_POST['defaulticon'])) {
13 $icondefault = (int) $_POST['defaulticon'];
14 if ($icondefault == -1) {
15 db_query("update users set icon = -1 where ident = " . $page_owner);
16 $_SESSION['icon'] = "default.png";
17 } else {
18 $iconfilename = db_query("select filename from icons where ident = $icondefault and owner = " . $page_owner);
19 if (sizeof($iconfilename) == 1) {
20 $iconfilename = $iconfilename[0]->filename;
21 if ($page_owner == $_SESSION['userid']) {
22 $_SESSION['icon'] = $iconfilename;
24 db_query("update users set icon = $icondefault where ident = " . $page_owner);
29 // Change their descriptions!
31 if (isset($_POST['description']) && sizeof($_POST['description'] > 0)) {
32 foreach($_POST['description'] as $iconid => $newdescription) {
33 $iconid = (int) $iconid;
34 $newdescription = trim($newdescription);
35 $result = db_query("select description from icons where ident = $iconid and owner = " . $page_owner);
36 if (sizeof($result) > 0) {
37 if ($result[0]->description != $newdescription) {
38 db_query("update icons set description = '$newdescription' where ident = $iconid");
44 // Delete them!
46 if (isset($_POST['icons_delete'])) {
47 if (sizeof($_POST['icons_delete']) > 0) {
48 foreach($_POST['icons_delete'] as $delete_icon) {
49 $delete_icon = (int) $delete_icon;
50 $result = db_query("select filename from icons where ident = $delete_icon and owner = " . $page_owner);
51 if (sizeof($result) == 1) {
52 db_query("delete from icons where ident = $delete_icon");
53 @unlink(path . "_icons/data/" . $result[0]->filename);
55 if ($result[0]->filename == $_SESSION['icon']) {
56 db_query("update users set icon = -1 where ident = " . $page_owner);
57 if ($page_owner == $_SESSION['userid']) {
58 $_SESSION['icon'] = "default.png";
62 $messages[] = gettext("Your selected icons were deleted.");
68 // Upload a new icon ...
69 if (isset($_POST['action']) && $_POST['action'] == "icons:add" && logged_on) {
71 if (isset($_POST['icondescription']) && isset($_POST['icondefault'])
72 && isset($_FILES['iconfile']['name'])) {
74 $messages[] = gettext("Attempting to upload icon file ...");
76 $ok = true;
77 $templocation = $_FILES['iconfile']['tmp_name'];
79 if ($ok == true) {
80 $numicons = db_query("select count(*) as numicons from icons where owner = " . $page_owner);
81 $numicons = (int) $numicons[0]->numicons;
82 if ($numicons >= $_SESSION['icon_quota']) {
83 $ok = false;
84 $messages[] = gettext("You have already met your icon quota. You must delete some icons before you can upload any new ones.");
87 if ($ok == true) {
88 $imageattr = @getimagesize($templocation);
89 if ($imageattr == false) {
90 $ok = false;
91 $messages[] = gettext("The uploaded icon file was invalid. Please ensure you are using JPEG, GIF or PNG files.");
94 if ($ok == true) {
95 if ($imageattr[0] > 100 || $imageattr[1] > 100) {
96 // $ok = false;
97 // $messages[] = gettext("The uploaded icon file was too large. Files must have maximum dimensions of 100x100.");
98 require_once(path . 'units/phpthumb/phpthumb.class.php');
99 $phpThumb = new phpThumb();
100 $phpThumb->setSourceFilename($templocation);
101 $phpThumb->w = 100;
102 $phpThumb->h = 100;
103 $phpThumb->config_output_format = 'jpeg';
104 $phpThumb->config_error_die_on_error = false;
105 if ($phpThumb->GenerateThumbnail()) {
106 $phpThumb->RenderToFile($templocation);
107 $imageattr[2] = "2";
108 } else {
109 $ok = false;
110 $messages[] .= '#Failed: '.implode("\n", $phpThumb->debugmessages);
114 if ($ok == true && ($imageattr[2] > 3 || $imageattr[2] < 1)) {
115 $message[] = gettext("The uploaded icon file was in an image format other than JPEG, GIF or PNG. These are unsupported at present.");
116 } else if ($ok == true) {
117 switch($imageattr[2]) {
118 case "1": $file_extension = ".gif";
119 break;
120 case "2": $file_extension = ".jpg";
121 break;
122 case "3": $file_extension = ".png";
123 break;
125 $save_file = $page_owner . "_" . time() . $file_extension;
126 $save_location = path . "_icons/data/" . $save_file;
127 if (move_uploaded_file($_FILES['iconfile']['tmp_name'], $save_location)) {
129 @chmod($save_location,0644);
130 $filedescription = trim($_POST['icondescription']);
131 db_query("insert into icons set filename = '$save_file', owner = " . $page_owner . ", description = '$filedescription'");
132 if ($_POST['icondefault'] == "yes") {
133 $ident = (int) db_id();
134 db_query("update users set icon = $ident where ident = " . $page_owner);
135 $_SESSION['icon'] = $save_file;
137 $messages[] = gettext("Your icon was uploaded successfully.");
139 } else {
140 $messages[] = gettext("An unknown error occurred when saving your icon. If this problem persists, please let us know and we'll do all we can to fix it quickly.");