--- /dev/null
--- /dev/null
++<?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);
--- /dev/null
--- /dev/null
++<?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);
--- /dev/null
--- /dev/null
++<?php
++/**
++ * ElggFriendRequest English language file.
++ *
++ */
++
++$english = array(
++ 'friendrequest' => 'Friend Requests',
++
++ 'friendrequest:add:successful' => 'You sent a friend request to %s. She has to accept it. Give she time.',
++ 'friendrequest:add:failure' => 'Oops! There was a problem while trying to send the request. Try it again.',
++ 'friendrequest:add:exists' => 'You already sent a friend request to %s, don\'t be so intense.',
++
++ 'friendrequest:decline:success' => 'You just declined %s friend request',
++ 'friendrequest:decline:fail' => 'For any reason this friend request cannot be deleted',
++
++ 'friendrequest:remove:check' => 'Are you sure you want to decline the friend request?',
++ 'friendrequest:none' => 'No pending friend requests.',
++
++ 'friendrequest:new:subject' => '%s want to be your friend',
++ 'friendrequest:new:body' => '%s want to be your friend. She is waiting that you aprovate her petition. Do not her wait!
++
++You can see your pending friend requests following this link (remember you have to be logged in to see it):
++
++ %s
++
++(Do not try to reply this mail, because is a machine who is sending it)',
++
++);
++
++add_translation('en', $english);