| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | 
							- <?php
 
- 	
 
- //Get our data
 
- $friend_guid = (int) get_input('friend');
 
- $friend = get_user($friend_guid);
 
- $user = elgg_get_logged_in_user_entity();
 
- // Now we need to attempt to create the relationship
 
- if (empty($user) || empty($friend)) {
 
- 	register_error(elgg_echo('friend_request:add:failure'));
 
- 	forward(REFERER);
 
- }
 
- // New for v1.1 - If the other user is already a friend (fan) of this user we should auto-approve the friend request...
 
- if (check_entity_relationship($friend->getGUID(), 'friend', $user->getGUID())) {
 
- 	try {
 
- 		
 
- 		$user->addFriend($friend->getGUID());
 
- 		
 
- 		system_message(elgg_echo('friends:add:successful', [$friend->name]));
 
- 		forward(REFERER);
 
- 	} catch (Exception $e) {
 
- 		register_error(elgg_echo('friends:add:failure', [$friend->name]));
 
- 		forward(REFERER);
 
- 	}
 
- } elseif (check_entity_relationship($friend->getGUID(), 'friendrequest', $user->getGUID())) {
 
- 	// Check if your potential friend already invited you, if so make friends
 
- 	if (remove_entity_relationship($friend->getGUID(), 'friendrequest', $user->getGUID())) {
 
- 		
 
- 		// Friends mean reciprical...
 
- 		$user->addFriend($friend->getGUID());
 
- 		$friend->addFriend($user->getGUID());
 
- 		
 
- 		system_message(elgg_echo('friend_request:approve:successful', [$friend->name]));
 
- 		
 
- 		// add to river
 
- 		friend_request_create_river_events($user->getGUID(), $friend->getGUID());
 
- 		
 
- 		forward(REFERER);
 
- 	} else {
 
- 		register_error(elgg_echo('friend_request:approve:fail', [$friend->name]));
 
- 		forward(REFERER);
 
- 	}
 
- } else {
 
- 	try {
 
- 		if (!add_entity_relationship($user->getGUID(), 'friendrequest', $friend->getGUID())) {
 
- 			register_error(elgg_echo('friend_request:add:exists', [$friend->name]));
 
- 			forward(REFERER);
 
- 		}
 
- 	} catch (Exception $e) {
 
- 		// add_entity_relationship calls insert_data which CAN raise Exceptions.
 
- 		register_error(elgg_echo('friend_request:add:exists', [$friend->name]));
 
- 		forward(REFERER);
 
- 	}
 
- }
 
- system_message(elgg_echo('friend_request:add:successful', array($friend->name)));
 
- forward(REFERER);
 
 
  |