ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\Badge\TileView Class Reference
+ Collaboration diagram for ILIAS\Badge\TileView:

Public Member Functions

 __construct (private readonly Container $container, private readonly string $gui, private readonly Tile $tile, private readonly PresentationHeader $head, $assignments_of_user=[ilBadgeAssignment::class, 'getInstancesByUserId'])
 
 show ()
 

Private Member Functions

 badgesAndAssignments ()
 
 componentsOfBadges (array $badge_and_assignments)
 
 cardsAndModals (array $badge_and_assignments)
 
 sortComponent (Sorting $sort)
 
 sort (Sorting $sort, array $badges_and_assignments)
 

Private Attributes

Closure $assignments_of_user
 
IRSS $irss
 

Detailed Description

Definition at line 30 of file TileView.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Badge\TileView::__construct ( private readonly Container  $container,
private readonly string  $gui,
private readonly Tile  $tile,
private readonly PresentationHeader  $head,
  $assignments_of_user = [ilBadgeAssignment::class, 'getInstancesByUserId'] 
)
Parameters
Closure(int)ilBadgeAssignment[] $assignments_of_user

Definition at line 39 of file TileView.php.

45 {
46 $this->assignments_of_user = Closure::fromCallable($assignments_of_user);
47 $this->irss = $this->container['resource_storage'];
48 }
Closure $assignments_of_user
Definition: TileView.php:33

References ILIAS\Badge\TileView\$assignments_of_user.

Member Function Documentation

◆ badgesAndAssignments()

ILIAS\Badge\TileView::badgesAndAssignments ( )
private
Returns
list<array{badge: ilBadge, assignment: ilBadgeAssignment}>

Definition at line 77 of file TileView.php.

77 : array
78 {
79 $badges = [];
80 foreach (($this->assignments_of_user)($this->container->user()->getId()) as $assignment) {
81 $badge = new ilBadge($assignment->getBadgeId());
82 $badges[] = [
83 'badge' => $badge,
84 'assignment' => $assignment,
85 ];
86 }
87
88 return $badges;
89 }

Referenced by ILIAS\Badge\TileView\show().

+ Here is the caller graph for this function:

◆ cardsAndModals()

ILIAS\Badge\TileView::cardsAndModals ( array  $badge_and_assignments)
private
Parameters
array{badgeilBadge, assignment: ilBadgeAssignment}
Returns
array{modal: Component, card: Component}

Definition at line 111 of file TileView.php.

111 : array
112 {
113 return $this->tile->inDeck(
114 $badge_and_assignments['badge'],
115 $badge_and_assignments['assignment'],
116 $this->gui
117 );
118 }

Referenced by ILIAS\Badge\TileView\componentsOfBadges().

+ Here is the caller graph for this function:

◆ componentsOfBadges()

ILIAS\Badge\TileView::componentsOfBadges ( array  $badge_and_assignments)
private
Parameters
list<array{badgeilBadge, assignment: ilBadgeAssignment}> $badge_and_assignment
Returns
list<Component>

Definition at line 95 of file TileView.php.

95 : array
96 {
97 $cards_and_modals = array_map($this->cardsAndModals(...), $badge_and_assignments);
98 $components = array_column($cards_and_modals, 'modal');
99 $components[] = $this->container->ui()
100 ->factory()
101 ->deck(array_column($cards_and_modals, 'card'))
102 ->withNormalCardsSize();
103
104 return $components;
105 }
$components
cardsAndModals(array $badge_and_assignments)
Definition: TileView.php:111

References $components, and ILIAS\Badge\TileView\cardsAndModals().

Referenced by ILIAS\Badge\TileView\show().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ show()

ILIAS\Badge\TileView::show ( )

Definition at line 50 of file TileView.php.

50 : string
51 {
52 $sort = new Sorting($this->container->http()->request()->getQueryParams()['sort'] ?? '');
53
54 $badges_and_assignments = $this->badgesAndAssignments();
55 $this->irss->preload(
56 array_values(
57 array_filter(
58 array_map(
59 static fn(array $badge_and_assignment): ?string => $badge_and_assignment['badge']->getImageRid(
60 ) ?: null,
61 $badges_and_assignments
62 )
63 )
64 )
65 );
66
67 $components = $this->componentsOfBadges($this->sort($sort, $badges_and_assignments));
68
69 $this->head->show($this->container->language()->txt('tile_view'), $this->sortComponent($sort));
70
71 return $this->container->ui()->renderer()->render($components);
72 }
sort(Sorting $sort, array $badges_and_assignments)
Definition: TileView.php:136
componentsOfBadges(array $badge_and_assignments)
Definition: TileView.php:95

References $components, ILIAS\Badge\TileView\badgesAndAssignments(), ILIAS\Badge\TileView\componentsOfBadges(), and ILIAS\Badge\TileView\sort().

+ Here is the call graph for this function:

◆ sort()

ILIAS\Badge\TileView::sort ( Sorting  $sort,
array  $badges_and_assignments 
)
private
Parameters
Sorting$sort
array{badgeilBadge, assignment: ilBadgeAssignment}[] $badges_and_assignments
Returns
array{badge: ilBadge, assignment: ilBadgeAssignment}[]

Definition at line 136 of file TileView.php.

136 : array
137 {
138 usort($badges_and_assignments, [$sort, 'compare']);
139
140 return $badges_and_assignments;
141 }

Referenced by ILIAS\Badge\TileView\show().

+ Here is the caller graph for this function:

◆ sortComponent()

ILIAS\Badge\TileView::sortComponent ( Sorting  $sort)
private

Definition at line 120 of file TileView.php.

120 : Component
121 {
122 $txt = [$this->container->language(), 'txt'];
123 $link = $this->container->ctrl()->getLinkTargetByClass($this->gui, 'listBadges');
124 return $this->container->ui()
125 ->factory()
126 ->viewControl()
127 ->sortation(array_map($txt, $sort->options()), $sort->key())
128 ->withTargetURL($link, 'sort');
129 }
$txt
Definition: error.php:31

References $txt, ILIAS\Badge\Sorting\key(), and ILIAS\Badge\Sorting\options().

+ Here is the call graph for this function:

Field Documentation

◆ $assignments_of_user

Closure ILIAS\Badge\TileView::$assignments_of_user
private

Definition at line 33 of file TileView.php.

Referenced by ILIAS\Badge\TileView\__construct().

◆ $irss

IRSS ILIAS\Badge\TileView::$irss
private

Definition at line 34 of file TileView.php.


The documentation for this class was generated from the following file: