ILIAS  trunk Revision v11.0_alpha-2662-g519ff7d528f
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

Member Function Documentation

◆ badgesAndAssignments()

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

Definition at line 77 of file TileView.php.

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

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  }
+ 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.

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

111  : array
112  {
113  return $this->tile->inDeck(
114  $badge_and_assignments['badge'],
115  $badge_and_assignments['assignment'],
116  $this->gui
117  );
118  }
+ 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.

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

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

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
+ 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.

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

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  }
sortComponent(Sorting $sort)
Definition: TileView.php:120
sort(Sorting $sort, array $badges_and_assignments)
Definition: TileView.php:136
$components
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
componentsOfBadges(array $badge_and_assignments)
Definition: TileView.php:95
+ 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.

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

136  : array
137  {
138  usort($badges_and_assignments, [$sort, 'compare']);
139 
140  return $badges_and_assignments;
141  }
+ Here is the caller graph for this function:

◆ sortComponent()

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

Definition at line 120 of file TileView.php.

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

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

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
+ Here is the call graph for this function:
+ Here is the caller 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.

◆ $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: