19declare(strict_types=1);
59 bool $add_value_from_data
67 $raw_values = $this->vocabulary_adapter->valuesInVocabulariesForSlot(
69 $add_value_from_data ?
$data :
null
71 foreach ($this->presenter->data()->vocabularyValues($slot, ...$raw_values) as $labelled_value) {
72 $values[$labelled_value->value()] = $labelled_value->label();
75 $input = $this->ui_factory->select(
76 $this->getInputLabelFromElement($this->presenter, $element, $context_element),
79 if ($add_value_from_data && isset(
$data)) {
80 $input = $input->withValue(
$data);
84 $sources_by_value = $this->vocabulary_adapter->sourceMapForSlot($slot);
85 return $this->addConstraintsFromElement($this->constraint_dictionary, $element, $input)
86 ->withAdditionalTransformation(
87 $this->
refinery->custom()->transformation(function ($vs) use ($sources_by_value, $source_path) {
88 $source = $sources_by_value((
string) $vs);
91 [$source_path->toString() => $source]
104 $slot = $this->vocabulary_adapter->slotForElement($element),
112 SlotIdentifier $conditional_slot
114 $slot = $this->vocabulary_adapter->slotForElement($element);
115 return $this->rawInput(
119 $slot === $conditional_slot
126 if ($el->getDefinition()->dataType() === Type::VOCAB_SOURCE) {
127 return $this->path_factory->toElement($el,
true);
130 throw new \ilMDEditorException(
'Vocab values must not be separated from their source.');
return['delivery_method'=> 'php',]
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc