diff options
author | Sem <sembrestels@riseup.net> | 2013-11-09 16:14:29 +0100 |
---|---|---|
committer | Sem <sembrestels@riseup.net> | 2013-11-09 16:14:29 +0100 |
commit | ba0d506ade08ae46ba665474a8b9c81e838f2eee (patch) | |
tree | f533d99e7204301d14123384247537fd92d29f4c /mod/friendrequest/actions/friends | |
parent | e2a2fbdccaf0f48878903f448428cab5852d0870 (diff) | |
parent | bdd9179742dbd9101b61a5138e1a81b084747dd8 (diff) | |
download | elgg-ba0d506ade08ae46ba665474a8b9c81e838f2eee.tar.gz elgg-ba0d506ade08ae46ba665474a8b9c81e838f2eee.tar.bz2 |
Add 'mod/friendrequest/' from commit 'bdd9179742dbd9101b61a5138e1a81b084747dd8'
git-subtree-dir: mod/friendrequest
git-subtree-mainline: e2a2fbdccaf0f48878903f448428cab5852d0870
git-subtree-split: bdd9179742dbd9101b61a5138e1a81b084747dd8
Diffstat (limited to 'mod/friendrequest/actions/friends')
-rw-r--r-- | mod/friendrequest/actions/friends/add.php | 53 | ||||
-rw-r--r-- | mod/friendrequest/actions/friends/remove.php | 36 |
2 files changed, 89 insertions, 0 deletions
diff --git a/mod/friendrequest/actions/friends/add.php b/mod/friendrequest/actions/friends/add.php new file mode 100644 index 000000000..e6efe1db1 --- /dev/null +++ b/mod/friendrequest/actions/friends/add.php @@ -0,0 +1,53 @@ +<?php +/** + * Elgg add friend action + * + * @package Elgg.Core + * @subpackage Friends.Management + * @override actions/friends/add.php + */ + + +// Get the GUID of the user to friend +$friend_guid = get_input('friend'); +$friend = get_entity($friend_guid); +if (!$friend) { + register_error(elgg_echo('error:missing_data')); + forward(REFERER); +} +$user = elgg_get_logged_in_user_entity(); + +$errors = false; + +if(check_entity_relationship($friend->guid, "friendrequest", $user->guid) + || check_entity_relationship($friend->guid, "friend", $user->guid)) { + + try { + if (!$user->addFriend($friend_guid)) { + $errors = true; + } + + $ia = elgg_set_ignore_access(true); + $friend->addFriend($user->guid); + elgg_set_ignore_access($ia); + + remove_entity_relationship($friend->guid, "friendrequest", $user->guid); + + } catch (Exception $e) { + register_error(elgg_echo("friends:add:failure", array($friend->name))); + $errors = true; + } + if (!$errors) { + // add to river + add_to_river('river/relationship/friend/create', 'friend', $user->guid, $friend->guid); + add_to_river('river/relationship/friend/create', 'friend', $friend->guid, $user->guid); + system_message(elgg_echo("friends:add:successful", array($friend->name))); + } +} elseif(add_entity_relationship($user->guid, "friendrequest", $friend->guid)) { + system_message(elgg_echo("friendrequest:add:successful", array($friend->name))); +} else { + register_error(elgg_echo("friendrequest:add:exists", array($friend->name))); +} + +// Forward back to the page you friended the user on +forward(REFERER); diff --git a/mod/friendrequest/actions/friends/remove.php b/mod/friendrequest/actions/friends/remove.php new file mode 100644 index 000000000..62bccb891 --- /dev/null +++ b/mod/friendrequest/actions/friends/remove.php @@ -0,0 +1,36 @@ +<?php +/** + * Elgg remove friend action + * + * @package Elgg.Core + * @subpackage Friends.Management + * @override actions/friends/remove.php + */ + +// Get the GUID of the user to friend +$friend_guid = get_input('friend'); +$friend = get_entity($friend_guid); +$errors = false; + +// Get the user +try{ + if ($friend instanceof ElggUser) { + elgg_get_logged_in_user_entity()->removeFriend($friend_guid); + $ia = elgg_set_ignore_access(true); + $friend->removeFriend(elgg_get_logged_in_user_guid()); + elgg_set_ignore_access($ia); + } else { + register_error(elgg_echo("friends:remove:failure", array($friend->name))); + $errors = true; + } +} catch (Exception $e) { + register_error(elgg_echo("friends:remove:failure", array($friend->name))); + $errors = true; +} + +if (!$errors) { + system_message(elgg_echo("friends:remove:successful", array($friend->name))); +} + +// Forward back to the page you made the friend on +forward(REFERER); |