aboutsummaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rw-r--r--engine/lib/users.php48
1 files changed, 48 insertions, 0 deletions
diff --git a/engine/lib/users.php b/engine/lib/users.php
index b9bf2058f..ee3814fd2 100644
--- a/engine/lib/users.php
+++ b/engine/lib/users.php
@@ -1463,6 +1463,39 @@ function user_create_hook_add_site_relationship($event, $object_type, $object) {
}
/**
+ * Serves the user's avatar
+ *
+ * @param string $hook
+ * @param string $entity_type
+ * @param string $returnvalue
+ * @param array $params
+ * @return string
+ */
+function user_avatar_hook($hook, $entity_type, $returnvalue, $params){
+ $entity = $params['entity'];
+ $size = $params['size'];
+ return "pg/avatar/view/{$entity->username}?size=$size";
+}
+
+/**
+ * Avatar page handler
+ *
+ * @param array $page
+ */
+function elgg_avatar_page_handler($page) {
+ global $CONFIG;
+
+ $user = get_user_by_username($page[1]);
+ elgg_set_page_owner_guid($user->guid);
+
+ if ($page[0] == 'edit') {
+ require_once("{$CONFIG->path}pages/avatar/edit.php");
+ } else {
+ require_once("{$CONFIG->path}pages/avatar/view.php");
+ }
+}
+
+/**
* Members page handler
*
* @param array $page url segments
@@ -1526,11 +1559,24 @@ function users_init() {
register_page_handler('resetpassword', 'elgg_user_resetpassword_page_handler');
register_page_handler('login', 'elgg_user_login_page_handler');
register_page_handler('members', 'elgg_members_page_handler');
+ register_page_handler('avatar', 'elgg_avatar_page_handler');
+
//register_page_handler('collections', 'collections_page_handler');
$item = new ElggMenuItem('members', elgg_echo('members'), 'pg/members');
elgg_register_menu_item('site', $item);
+ $user = get_loggedin_user();
+ if ($user) {
+ $params = array(
+ 'name' => 'edit_avatar',
+ 'url' => "pg/avatar/edit/{$user->username}",
+ 'title' => elgg_echo('avatar:edit'),
+ 'contexts' => array('avatar'),
+ );
+ elgg_register_menu_item('page', $params);
+ }
+
elgg_register_action("register", '', 'public');
elgg_register_action("useradd", '', 'public');
elgg_register_action("friends/add");
@@ -1543,6 +1589,8 @@ function users_init() {
//elgg_register_action('friends/editcollection');
//elgg_register_action("user/spotlight");
+ elgg_register_plugin_hook_handler('entity:icon:url', 'user', 'user_avatar_hook');
+
elgg_register_action("usersettings/save");
elgg_register_action("user/passwordreset", '', 'public');