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