ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
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
 

Detailed Description

Definition at line 29 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 37 of file TileView.php.

43  {
44  $this->assignments_of_user = Closure::fromCallable($assignments_of_user);
45  }
Closure $assignments_of_user
Definition: TileView.php:32

Member Function Documentation

◆ badgesAndAssignments()

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

Definition at line 60 of file TileView.php.

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

60  : array
61  {
62  $badges = [];
63  foreach (($this->assignments_of_user)($this->container->user()->getId()) as $assignment) {
64  $badge = new ilBadge($assignment->getBadgeId());
65  $badges[] = [
66  'badge' => $badge,
67  'assignment' => $assignment,
68  ];
69  }
70 
71  return $badges;
72  }
+ 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 94 of file TileView.php.

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

94  : array
95  {
96  return $this->tile->inDeck(
97  $badge_and_assignments['badge'],
98  $badge_and_assignments['assignment'],
99  $this->gui
100  );
101  }
+ 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 78 of file TileView.php.

References ILIAS\Badge\TileView\cardsAndModals().

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

78  : array
79  {
80  $cards_and_modals = array_map($this->cardsAndModals(...), $badge_and_assignments);
81  $components = array_column($cards_and_modals, 'modal');
82  $components[] = $this->container->ui()
83  ->factory()
84  ->deck(array_column($cards_and_modals, 'card'))
85  ->withNormalCardsSize();
86 
87  return $components;
88  }
cardsAndModals(array $badge_and_assignments)
Definition: TileView.php:94
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ show()

ILIAS\Badge\TileView::show ( )

Definition at line 47 of file TileView.php.

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

47  : string
48  {
49  $sort = new Sorting($this->container->http()->request()->getQueryParams()['sort'] ?? '');
50  $components = $this->componentsOfBadges($this->sort($sort, $this->badgesAndAssignments()));
51 
52  $this->head->show($this->container->language()->txt('tile_view'), $this->sortComponent($sort));
53 
54  return $this->container->ui()->renderer()->render($components);
55  }
sortComponent(Sorting $sort)
Definition: TileView.php:103
sort(Sorting $sort, array $badges_and_assignments)
Definition: TileView.php:120
componentsOfBadges(array $badge_and_assignments)
Definition: TileView.php:78
+ 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 120 of file TileView.php.

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

120  : array
121  {
122  usort($badges_and_assignments, [$sort, 'compare']);
123 
124  return $badges_and_assignments;
125  }
+ Here is the caller graph for this function:

◆ sortComponent()

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

Definition at line 103 of file TileView.php.

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

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

103  : Component
104  {
105  $txt = [$this->container->language(), 'txt'];
106  $link = $this->container->ctrl()->getLinkTargetByClass($this->gui, 'listBadges');
107  return $this->container->ui()
108  ->factory()
109  ->viewControl()
110  ->sortation(array_map($txt, $sort->options()))
111  ->withTargetURL($link, 'sort')
112  ->withLabel($txt($sort->label()));
113  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$txt
Definition: error.php:14
+ 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 32 of file TileView.php.


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