19 declare(strict_types=1);
58 SlotHandler $slot_handler,
72 public function txt(
string $key): string
74 return $this->presentation_utils->txt($key);
77 public function txtFill(
string $key,
string ...$values): string
79 return $this->presentation_utils->txtFill($key, ...$values);
84 return match ($type) {
85 VocabType::STANDARD => $this->presentation_utils->txt(
'md_vocab_type_standard'),
86 VocabType::CONTROLLED_STRING => $this->presentation_utils->txt(
'md_vocab_type_controlled_string'),
87 VocabType::CONTROLLED_VOCAB_VALUE => $this->presentation_utils->txt(
'md_vocab_type_controlled_vocab_value'),
96 $skip_data = [
'string',
'value'];
99 $this->slot_handler->pathForSlot($slot),
100 $this->structure->getRoot()
102 $element_name = $this->elements_presentation->nameWithParents(
106 in_array($element->getDefinition()->name(), $skip_data),
109 if (!$this->slot_handler->isSlotConditional($slot)) {
110 return $element_name;
113 $condition = $this->slot_handler->conditionForSlot($slot);
119 $condition_element_name = $this->elements_presentation->nameWithParents(
123 in_array($element->getDefinition()->name(), $skip_data),
126 return $this->presentation_utils->txtFill(
127 'md_vocab_element_with_condition',
129 $condition_element_name,
141 $presentable_values = [];
144 $labelled_values = $this->vocab_presentation->labelsForVocabulary(
145 $this->presentation_utils,
148 foreach ($labelled_values as $labelled_value) {
149 if ($limit !==
null && $i >= $limit) {
150 $presentable_values[] =
'...';
156 $vocabulary->
type() === VocabType::STANDARD ||
159 $presentable_values[] = $this->presentation_utils->sanitizeForHTML($labelled_value->label());
163 $presentable_value = $labelled_value->value();
164 if ($labelled_value->label() !==
'') {
165 $presentable_value = $labelled_value->label() .
' (' . $presentable_value .
')';
167 $presentable_values[] = $this->presentation_utils->sanitizeForHTML($presentable_value);
170 return $presentable_values;
177 $path_from_root = $this->path_factory->toElement(
180 $slot = $this->slot_handler->identiferFromPathAndCondition($path_from_root,
null,
null);
181 return (
string) $this->vocab_presentation->presentableLabels(
182 $this->presentation_utils,
186 )->current()?->label();
199 if (in_array($b, $a_supers,
true)) {
211 return $this->navigator_factory->structureNavigator(
214 )->elementAtFinalStep();
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
$a
thx to https://mlocati.github.io/php-cs-fixer-configurator for the examples