ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ILIAS\Badge\Tile Class Reference
+ Collaboration diagram for ILIAS\Badge\Tile:

Public Member Functions

 __construct (private readonly Container $container, BadgeParent $parent=null, Modal $modal=null, $sign_file=[ilWACSignedPath::class, 'signFile'], Closure $format_date=null,)
 
 inDeck (ilBadge $badge, ilBadgeAssignment $assignment, string $gui)
 
 asImage (ModalContent $content)
 
 asTitle (ModalContent $content)
 
 modalContent (ilBadge $badge)
 
 modalContentWithAssignment (ilBadge $badge, ilBadgeAssignment $assignment)
 
 addAssignment (ModalContent $content, ilBadgeAssignment $assignment)
 

Private Member Functions

 card (ModalContent $content)
 
 modal (Card $card)
 
 image (Component $modal, ilBadge $badge)
 
 title (Component $modal, ilBadge $badge)
 
 txt (string $key)
 
 tryFormating (string $valid)
 
 profileButton (ilBadge $badge, ilBadgeAssignment $assignment, string $gui)
 

Private Attributes

readonly Closure $sign_file
 
readonly BadgeParent $parent
 
readonly Modal $modal
 
readonly Closure $format_date
 

Detailed Description

Definition at line 34 of file Tile.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Badge\Tile::__construct ( private readonly Container  $container,
BadgeParent  $parent = null,
Modal  $modal = null,
  $sign_file = [ilWACSignedPath::class,
'signFile']  ,
Closure  $format_date = null 
)
Parameters
Closure(string)string $sign_file
Closure(int)string $format_date

Definition at line 47 of file Tile.php.

References ILIAS\Badge\Tile\$format_date, ilDatePresentation\formatDate(), IL_CAL_UNIX, and ILIAS\Badge\Tile\modal().

53  {
54  $this->parent = $parent ?? new BadgeParent($this->container);
55  $this->modal = $modal ?? new Modal($this->container);
56  $this->sign_file = Closure::fromCallable($sign_file);
57  if (!$format_date) {
58  class_exists(ilDateTime::class); // Ensure ilDateTime is loaded as IL_CAL_UNIX is defined in ilDateTime.php.
59  $format_date = static fn($date, int $format = IL_CAL_UNIX): string => (
60  ilDatePresentation::formatDate(new ilDateTime($date, $format))
61  );
62  }
63  $this->format_date = $format_date;
64  }
const IL_CAL_UNIX
modal(Card $card)
Definition: Tile.php:124
readonly Closure $sign_file
Definition: Tile.php:37
readonly Closure $format_date
Definition: Tile.php:41
readonly BadgeParent $parent
Definition: Tile.php:38
+ Here is the call graph for this function:

Member Function Documentation

◆ addAssignment()

ILIAS\Badge\Tile::addAssignment ( ModalContent  $content,
ilBadgeAssignment  $assignment 
)

Definition at line 163 of file Tile.php.

References ilBadgeAssignment\getTimestamp(), ILIAS\Badge\Tile\txt(), and ILIAS\Badge\ModalContent\withAdditionalProperties().

Referenced by ILIAS\Badge\Tile\modalContentWithAssignment().

163  : ModalContent
164  {
165  return $content->withAdditionalProperties([
166  $this->txt('issued_on') => ($this->format_date)($assignment->getTimestamp()),
167  ]);
168  }
txt(string $key)
Definition: Tile.php:170
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ asImage()

ILIAS\Badge\Tile::asImage ( ModalContent  $content)
Returns
list<Component>

Definition at line 92 of file Tile.php.

References ILIAS\Badge\Tile\$modal, ILIAS\Badge\ModalContent\badge(), ILIAS\Badge\Tile\card(), ILIAS\Badge\Tile\image(), and ILIAS\Badge\Tile\modal().

92  : array
93  {
94  $modal = $this->modal($this->card($content));
95  return [
96  $modal,
97  $this->image($modal, $content->badge()),
98  ];
99  }
modal(Card $card)
Definition: Tile.php:124
image(Component $modal, ilBadge $badge)
Definition: Tile.php:131
readonly Modal $modal
Definition: Tile.php:39
card(ModalContent $content)
Definition: Tile.php:114
+ Here is the call graph for this function:

◆ asTitle()

ILIAS\Badge\Tile::asTitle ( ModalContent  $content)
Returns
list<Component>

Definition at line 104 of file Tile.php.

References ILIAS\Badge\Tile\$modal, ILIAS\Badge\ModalContent\badge(), ILIAS\Badge\Tile\card(), ILIAS\Badge\Tile\image(), ILIAS\Badge\Tile\modal(), and ILIAS\Badge\Tile\title().

104  : array
105  {
106  $modal = $this->modal($this->card($content));
107  return [
108  $modal,
109  $this->image($modal, $content->badge()),
110  $this->title($modal, $content->badge()),
111  ];
112  }
modal(Card $card)
Definition: Tile.php:124
image(Component $modal, ilBadge $badge)
Definition: Tile.php:131
readonly Modal $modal
Definition: Tile.php:39
card(ModalContent $content)
Definition: Tile.php:114
title(Component $modal, ilBadge $badge)
Definition: Tile.php:140
+ Here is the call graph for this function:

◆ card()

ILIAS\Badge\Tile::card ( ModalContent  $content)
private

Definition at line 114 of file Tile.php.

References ILIAS\Badge\ModalContent\badge(), and ILIAS\Badge\Tile\modal().

Referenced by ILIAS\Badge\Tile\asImage(), ILIAS\Badge\Tile\asTitle(), and ILIAS\Badge\Tile\inDeck().

115  {
116  return $this->container
117  ->ui()
118  ->factory()
119  ->card()
120  ->standard($content->badge()->getTitle())
121  ->withHiddenSections($this->modal->components($content));
122  }
modal(Card $card)
Definition: Tile.php:124
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ image()

ILIAS\Badge\Tile::image ( Component  $modal,
ilBadge  $badge 
)
private

Definition at line 131 of file Tile.php.

References ilBadge\getImage(), and ilBadge\getImagePath().

Referenced by ILIAS\Badge\Tile\asImage(), ILIAS\Badge\Tile\asTitle(), and ILIAS\Badge\Tile\inDeck().

131  : Component
132  {
133  return $this->container->ui()
134  ->factory()
135  ->image()
136  ->responsive(($this->sign_file)($badge->getImagePath()), $badge->getImage())
137  ->withAction($modal->getShowSignal());
138  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
readonly Modal $modal
Definition: Tile.php:39
getImagePath(bool $a_full_path=true)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ inDeck()

ILIAS\Badge\Tile::inDeck ( ilBadge  $badge,
ilBadgeAssignment  $assignment,
string  $gui 
)
Returns
array{modal: Component, card: Component}

Definition at line 69 of file Tile.php.

References ILIAS\Badge\Tile\$modal, ILIAS\Badge\Tile\$parent, ILIAS\Badge\Tile\card(), ILIAS\Badge\Tile\image(), ILIAS\Badge\Tile\modal(), ILIAS\Badge\Tile\modalContentWithAssignment(), and ILIAS\Badge\Tile\profileButton().

69  : array
70  {
71  $parent = $this->parent->asComponent($badge);
72  $badge_sections = $parent ? [$parent] : [];
73  $badge_sections[] = $this->profileButton($badge, $assignment, $gui);
74 
75  $content = $this->modalContentWithAssignment($badge, $assignment);
76  $card = $this->card($content);
77  $modal = $this->modal($card);
78  $image = $this->image($modal, $badge);
79  $card = $card->withSections($badge_sections)
80  ->withImage($image)
81  ->withTitleAction($modal->getShowSignal());
82 
83  return [
84  'card' => $card,
85  'modal' => $modal,
86  ];
87  }
modal(Card $card)
Definition: Tile.php:124
image(Component $modal, ilBadge $badge)
Definition: Tile.php:131
readonly Modal $modal
Definition: Tile.php:39
profileButton(ilBadge $badge, ilBadgeAssignment $assignment, string $gui)
Definition: Tile.php:187
readonly BadgeParent $parent
Definition: Tile.php:38
modalContentWithAssignment(ilBadge $badge, ilBadgeAssignment $assignment)
Definition: Tile.php:158
card(ModalContent $content)
Definition: Tile.php:114
asComponent(ilBadge $badge)
Definition: BadgeParent.php:55
+ Here is the call graph for this function:

◆ modal()

ILIAS\Badge\Tile::modal ( Card  $card)
private

Definition at line 124 of file Tile.php.

Referenced by ILIAS\Badge\Tile\__construct(), ILIAS\Badge\Tile\asImage(), ILIAS\Badge\Tile\asTitle(), ILIAS\Badge\Tile\card(), and ILIAS\Badge\Tile\inDeck().

124  : Component
125  {
126  return $this->container->ui()->factory()->modal()->lightbox(
127  $this->container->ui()->factory()->modal()->lightboxCardPage($card)
128  );
129  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the caller graph for this function:

◆ modalContent()

ILIAS\Badge\Tile::modalContent ( ilBadge  $badge)

Definition at line 148 of file Tile.php.

References ilBadge\getCriteria(), ilBadge\getValid(), ILIAS\Badge\Tile\tryFormating(), and ILIAS\Badge\Tile\txt().

Referenced by ILIAS\Badge\Tile\modalContentWithAssignment().

148  : ModalContent
149  {
150  $awarded_by = $this->parent->asProperty($badge);
151  return new ModalContent($badge, [
152  $this->txt('criteria') => $badge->getCriteria(),
153  ...(null !== $awarded_by ? [$this->txt('awarded_by') => $awarded_by] : []),
154  $this->txt('valid_until') => $this->tryFormating($badge->getValid()),
155  ]);
156  }
tryFormating(string $valid)
Definition: Tile.php:175
txt(string $key)
Definition: Tile.php:170
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ modalContentWithAssignment()

ILIAS\Badge\Tile::modalContentWithAssignment ( ilBadge  $badge,
ilBadgeAssignment  $assignment 
)

Definition at line 158 of file Tile.php.

References ILIAS\Badge\Tile\addAssignment(), and ILIAS\Badge\Tile\modalContent().

Referenced by ILIAS\Badge\Tile\inDeck().

158  : ModalContent
159  {
160  return $this->addAssignment($this->modalContent($badge), $assignment);
161  }
addAssignment(ModalContent $content, ilBadgeAssignment $assignment)
Definition: Tile.php:163
modalContent(ilBadge $badge)
Definition: Tile.php:148
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ profileButton()

ILIAS\Badge\Tile::profileButton ( ilBadge  $badge,
ilBadgeAssignment  $assignment,
string  $gui 
)
private

Definition at line 187 of file Tile.php.

References $url, ilBadge\getId(), ilBadgeAssignment\getPosition(), and ILIAS\Badge\Tile\txt().

Referenced by ILIAS\Badge\Tile\inDeck().

187  : Component
188  {
189  $active = $assignment->getPosition();
190 
191  $this->container->ctrl()->setParameterByClass($gui, 'badge_id', $badge->getId());
192 
193  $url = $this->container->ctrl()->getLinkTargetByClass(
194  $gui,
195  $active ? 'deactivateInCard' : 'activateInCard'
196  );
197 
198  $this->container->ctrl()->setParameterByClass($gui, 'badge_id', '');
199 
200  return $this->container->ui()->factory()->button()->standard(
201  $this->txt($active ? 'badge_remove_from_profile' : 'badge_add_to_profile'),
202  $url
203  );
204  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$url
Definition: ltiregstart.php:35
txt(string $key)
Definition: Tile.php:170
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ title()

ILIAS\Badge\Tile::title ( Component  $modal,
ilBadge  $badge 
)
private

Definition at line 140 of file Tile.php.

References ilBadge\getTitle().

Referenced by ILIAS\Badge\Tile\asTitle().

140  : Component
141  {
142  return $this->container->ui()
143  ->factory()
144  ->button()
145  ->shy($badge->getTitle(), $modal->getShowSignal());
146  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
readonly Modal $modal
Definition: Tile.php:39
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tryFormating()

ILIAS\Badge\Tile::tryFormating ( string  $valid)
private

Definition at line 175 of file Tile.php.

References $valid, IL_CAL_DATE, and ILIAS\Badge\Tile\txt().

Referenced by ILIAS\Badge\Tile\modalContent().

175  : string
176  {
177  if (!$valid) {
178  return $this->txt('endless');
179  }
180  try {
181  return ($this->format_date)($valid, IL_CAL_DATE);
182  } catch (ilDateTimeException $x) {
183  return $valid;
184  }
185  }
$valid
const IL_CAL_DATE
txt(string $key)
Definition: Tile.php:170
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ txt()

ILIAS\Badge\Tile::txt ( string  $key)
private

Definition at line 170 of file Tile.php.

Referenced by ILIAS\Badge\Tile\addAssignment(), ILIAS\Badge\Tile\modalContent(), ILIAS\Badge\Tile\profileButton(), and ILIAS\Badge\Tile\tryFormating().

170  : string
171  {
172  return $this->container->language()->txt($key);
173  }
string $key
Consumer key/client ID value.
Definition: System.php:193
+ Here is the caller graph for this function:

Field Documentation

◆ $format_date

readonly Closure ILIAS\Badge\Tile::$format_date
private

Definition at line 41 of file Tile.php.

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

◆ $modal

readonly Modal ILIAS\Badge\Tile::$modal
private

◆ $parent

readonly BadgeParent ILIAS\Badge\Tile::$parent
private

Definition at line 38 of file Tile.php.

Referenced by ILIAS\Badge\Tile\inDeck().

◆ $sign_file

readonly Closure ILIAS\Badge\Tile::$sign_file
private

Definition at line 37 of file Tile.php.


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