ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
Data.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
23use ILIAS\MetaData\Elements\Data\DataInterface as ElementsDataInterface;
26use ILIAS\MetaData\Presentation\DataInterface as DataPresentation;
31
32class Data implements DataInterface
33{
34 protected BaseUtilities $utilities;
35 protected DataPresentation $data_presentation;
36 protected VocabulariesPresentation $vocabularies_presentation;
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}
$datetime
$duration
datetime(string $datetime)
Definition: Data.php:81
VocabulariesPresentation $vocabularies_presentation
Definition: Data.php:36
duration(string $duration)
Definition: Data.php:88
language(string $language)
Definition: Data.php:74
dataValue(ElementsDataInterface $data)
Definition: Data.php:48
__construct(BaseUtilities $utilities, DataPresentation $data_presentation, VocabulariesPresentation $vocabularies_presentation)
Definition: Data.php:38
DataPresentation $data_presentation
Definition: Data.php:35
vocabularyValues(SlotIdentifier $slot, string ... $values)
Definition: Data.php:58