Skip to content

Commit db325a7

Browse files
committed
changed: replaced the event_attendees menu with filter:event/attendees
for consistent styling and extensibility
1 parent e49c8f4 commit db325a7

File tree

4 files changed

+52
-46
lines changed

4 files changed

+52
-46
lines changed

classes/ColdTrick/EventManager/Menus.php

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -177,43 +177,6 @@ public static function registerEventsList(\Elgg\Event $event): MenuItems {
177177
return $result;
178178
}
179179

180-
/**
181-
* Register tabs for the event attendees page
182-
*
183-
* @param \Elgg\Event $event 'register', 'menu:event_attendees'
184-
*
185-
* @return null|MenuItems
186-
*/
187-
public static function registerEventAttendees(\Elgg\Event $event): ?MenuItems {
188-
189-
$entity = $event->getEntityParam();
190-
if (!$entity instanceof \Event) {
191-
return null;
192-
}
193-
194-
$relationship = $event->getParam('relationship');
195-
$valid_relationships = $entity->getSupportedRelationships();
196-
if (count($valid_relationships) === 1) {
197-
return null;
198-
}
199-
200-
$result = $event->getValue();
201-
202-
foreach ($valid_relationships as $rel => $label) {
203-
$result[] = \ElggMenuItem::factory([
204-
'name' => $rel,
205-
'text' => $label,
206-
'href' => elgg_generate_url('collection:object:event:attendees', [
207-
'guid' => $entity->guid,
208-
'relationship' => $rel,
209-
]),
210-
'selected' => $relationship === $rel,
211-
]);
212-
}
213-
214-
return $result;
215-
}
216-
217180
/**
218181
* Registers menu items for the rsvp menu
219182
*
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?php
2+
3+
namespace ColdTrick\EventManager\Menus;
4+
5+
use Elgg\Menu\MenuItems;
6+
7+
/**
8+
* Register menu items in the filter:event/attendees menu
9+
*/
10+
class FilterEventAttendees {
11+
12+
/**
13+
* Register the event relationship to the attendee listing
14+
*
15+
* @param \Elgg\Event $event 'register', 'menu:filter:event/attendees'
16+
*
17+
* @return null|MenuItems
18+
*/
19+
public static function registerAttendeeRelationships(\Elgg\Event $event): ?MenuItems {
20+
$entity = $event->getParam('event_entity');
21+
if (!$entity instanceof \Event) {
22+
return null;
23+
}
24+
25+
$valid_relationships = $entity->getSupportedRelationships();
26+
if (count($valid_relationships) === 1) {
27+
return null;
28+
}
29+
30+
/* @var $result MenuItems */
31+
$result = $event->getValue();
32+
33+
foreach ($valid_relationships as $rel => $label) {
34+
$result[] = \ElggMenuItem::factory([
35+
'name' => $rel,
36+
'text' => $label,
37+
'href' => elgg_generate_url('collection:object:event:attendees', [
38+
'guid' => $entity->guid,
39+
'relationship' => $rel,
40+
]),
41+
]);
42+
}
43+
44+
return $result;
45+
}
46+
}

elgg-plugin.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -330,9 +330,6 @@
330330
'\ColdTrick\EventManager\Menus\Entity::registerEventUnsubscribe' => ['priority' => 600],
331331
'\ColdTrick\EventManager\Menus\Entity::registerMailAttendees' => [],
332332
],
333-
'menu:event_attendees' => [
334-
'\ColdTrick\EventManager\Menus::registerEventAttendees' => [],
335-
],
336333
'menu:event_files' => [
337334
'\ColdTrick\EventManager\Menus::registerEventFiles' => [],
338335
],
@@ -343,6 +340,9 @@
343340
'\ColdTrick\EventManager\Menus::registerEventsList' => [],
344341
'\ColdTrick\EventManager\Menus\Filter::registerViewTypes' => [],
345342
],
343+
'menu:filter:event/attendees' => [
344+
'\ColdTrick\EventManager\Menus\FilterEventAttendees::registerAttendeeRelationships' => [],
345+
],
346346
'menu:owner_block' => [
347347
'\ColdTrick\EventManager\Menus::registerGroupOwnerBlock' => [],
348348
'\ColdTrick\EventManager\Menus::registerUserOwnerBlock' => [],

views/default/resources/event/attendees.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,7 @@
6464

6565
echo elgg_view_page(elgg_echo('event_manager:event:attendees:title', [$entity->getDisplayName(), $rel_text]), [
6666
'content' => $content,
67-
'filter' => elgg_view_menu('event_attendees', [
68-
'sort_by' => 'priority',
69-
'class' => 'elgg-menu-hz elgg-tabs',
70-
'entity' => $entity,
71-
'relationship' => $relationship,
72-
]),
67+
'filter_id' => 'event/attendees',
68+
'filter_value' => $relationship,
69+
'event_entity' => $entity,
7370
]);

0 commit comments

Comments
 (0)