1<?php 2 3namespace Elgg\Friends; 4 5use Elgg\Menu\MenuItems; 6 7/** 8 * Add menu items to the relationship menu 9 * 10 * @since 3.2 11 */ 12class RelationshipMenu { 13 14 /** 15 * Add menu items to a pending friend request 16 * 17 * @param \Elgg\Hook $hook 'register', 'menu:relationship' 18 * 19 * @return void|MenuItems 20 * @since 3.2 21 * @internal 22 */ 23 public static function addPendingFriendRequestItems(\Elgg\Hook $hook) { 24 25 $relationship = $hook->getParam('relationship'); 26 if (!$relationship instanceof \ElggRelationship || $relationship->relationship !== 'friendrequest') { 27 return; 28 } 29 30 $page_owner = elgg_get_page_owner_entity(); 31 if ($relationship->guid_two !== $page_owner->guid) { 32 // looking at sent requests 33 return; 34 } 35 36 /* @var $result MenuItems */ 37 $result = $hook->getValue(); 38 39 $result[] = \ElggMenuItem::factory([ 40 'name' => 'accept', 41 'icon' => 'checkmark', 42 'text' => elgg_echo('accept'), 43 'href' => elgg_generate_action_url('friends/request/accept', [ 44 'id' => $relationship->id, 45 ]), 46 'section' => 'actions', 47 'link_class' => 'elgg-button elgg-button-submit', 48 ]); 49 50 $result[] = \ElggMenuItem::factory([ 51 'name' => 'decline', 52 'icon' => 'delete', 53 'text' => elgg_echo('decline'), 54 'href' => elgg_generate_action_url('friends/request/decline', [ 55 'id' => $relationship->id, 56 ]), 57 'section' => 'actions', 58 'link_class' => 'elgg-button elgg-button-delete', 59 'confirm' => elgg_echo('deleteconfirm'), 60 ]); 61 62 return $result; 63 } 64 65 /** 66 * Add menu items to a sent friend request 67 * 68 * @param \Elgg\Hook $hook 'register', 'menu:relationship' 69 * 70 * @return void|MenuItems 71 * @since 3.2 72 * @internal 73 */ 74 public static function addSentFriendRequestItems(\Elgg\Hook $hook) { 75 76 $relationship = $hook->getParam('relationship'); 77 if (!$relationship instanceof \ElggRelationship || $relationship->relationship !== 'friendrequest') { 78 return; 79 } 80 81 $page_owner = elgg_get_page_owner_entity(); 82 if ($relationship->guid_one !== $page_owner->guid) { 83 // looking at pending requests 84 return; 85 } 86 87 /* @var $result MenuItems */ 88 $result = $hook->getValue(); 89 90 $result[] = \ElggMenuItem::factory([ 91 'name' => 'revoke', 92 'icon' => 'delete', 93 'text' => elgg_echo('revoke'), 94 'href' => elgg_generate_action_url('friends/request/revoke', [ 95 'id' => $relationship->id, 96 ]), 97 'section' => 'actions', 98 'link_class' => 'elgg-button elgg-button-delete', 99 ]); 100 101 return $result; 102 } 103} 104