aboutsummaryrefslogtreecommitdiff
path: root/pages
diff options
context:
space:
mode:
Diffstat (limited to 'pages')
-rw-r--r--pages/avatar/edit.php20
-rw-r--r--pages/avatar/view.php46
2 files changed, 66 insertions, 0 deletions
diff --git a/pages/avatar/edit.php b/pages/avatar/edit.php
new file mode 100644
index 000000000..a577170a0
--- /dev/null
+++ b/pages/avatar/edit.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Upload and crop an avatar page
+ */
+
+// Only logged in users
+gatekeeper();
+
+$title = elgg_echo('avatar:edit');
+
+$content = elgg_view('core/avatar/upload', array('entity' => elgg_get_page_owner()));
+$content .= elgg_view('core/avatar/crop', array('entity' => elgg_get_page_owner()));
+
+$params = array(
+ 'content' => $content,
+ 'title' => $title,
+);
+$body = elgg_view_layout('one_sidebar', $params);
+
+echo elgg_view_page($title, $body);
diff --git a/pages/avatar/view.php b/pages/avatar/view.php
new file mode 100644
index 000000000..ed8a47d59
--- /dev/null
+++ b/pages/avatar/view.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * View an avatar
+ */
+
+$user = elgg_get_page_owner();
+
+// Get the size
+$size = strtolower(get_input('size'));
+if (!in_array($size, array('master', 'large', 'medium', 'small', 'tiny', 'topbar'))) {
+ $size = 'medium';
+}
+
+// If user doesn't exist, return default icon
+if (!$user) {
+ $path = elgg_view("icon/user/default/$size");
+ header("Location: $path");
+ exit;
+}
+
+// Try and get the icon
+$filehandler = new ElggFile();
+$filehandler->owner_guid = $user->getGUID();
+$filehandler->setFilename("profile/" . $user->getGUID() . $size . ".jpg");
+
+$success = false;
+if ($filehandler->open("read")) {
+ if ($contents = $filehandler->read($filehandler->size())) {
+ $success = true;
+ }
+}
+
+if (!$success) {
+ global $CONFIG;
+ $path = elgg_view('icon/user/default/'.$size);
+ header("Location: {$path}");
+ exit;
+}
+
+header("Content-type: image/jpeg");
+header('Expires: ' . date('r', time() + 864000));
+header("Pragma: public");
+header("Cache-Control: public");
+header("Content-Length: " . strlen($contents));
+
+echo $contents;