ILIAS  trunk Revision v11.0_alpha-1715-g7fc467680fb
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
Data.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
31 
32 class Data implements DataInterface
33 {
37 
38  public function __construct(
39  BaseUtilities $utilities,
40  DataPresentation $data_presentation,
41  VocabulariesPresentation $vocabularies_presentation
42  ) {
43  $this->utilities = $utilities;
44  $this->data_presentation = $data_presentation;
45  $this->vocabularies_presentation = $vocabularies_presentation;
46  }
47 
48  public function dataValue(ElementsDataInterface $data): string
49  {
50  return $this->utilities->sanitizeForHTML(
51  $this->data_presentation->dataValue($data)
52  );
53  }
54 
58  public function vocabularyValues(SlotIdentifier $slot, string ...$values): \Generator
59  {
60  $labels = $this->vocabularies_presentation->presentableLabels(
61  $this->utilities,
62  $slot,
63  true,
64  ...$values
65  );
66  foreach ($labels as $label) {
67  yield new LabelledValue(
68  $label->value(),
69  $this->utilities->sanitizeForHTML($label->label())
70  );
71  }
72  }
73 
74  public function language(string $language): string
75  {
76  return $this->utilities->sanitizeForHTML(
77  $this->data_presentation->language($language)
78  );
79  }
80 
81  public function datetime(string $datetime): string
82  {
83  return $this->utilities->sanitizeForHTML(
84  $this->data_presentation->datetime($datetime)
85  );
86  }
87 
88  public function duration(string $duration): string
89  {
90  return $this->utilities->sanitizeForHTML(
91  $this->data_presentation->duration($duration)
92  );
93  }
94 
98  public function durationLabels(): \Generator
99  {
100  yield from [
101  $this->utilities->txt('years'),
102  $this->utilities->txt('months'),
103  $this->utilities->txt('days'),
104  $this->utilities->txt('hours'),
105  $this->utilities->txt('minutes'),
106  $this->utilities->txt('seconds')
107  ];
108  }
109 }
DataPresentation $data_presentation
Definition: Data.php:35
__construct(BaseUtilities $utilities, DataPresentation $data_presentation, VocabulariesPresentation $vocabularies_presentation)
Definition: Data.php:38
$datetime
vocabularyValues(SlotIdentifier $slot, string ... $values)
Definition: Data.php:58
$duration
VocabulariesPresentation $vocabularies_presentation
Definition: Data.php:36
datetime(string $datetime)
Definition: Data.php:81
dataValue(ElementsDataInterface $data)
Definition: Data.php:48
language(string $language)
Definition: Data.php:74
duration(string $duration)
Definition: Data.php:88