19 declare(strict_types=1);
62 VocabularyAdapter $vocabulary_adapter
83 $data_carriers = iterator_to_array($this->data_finder->getDataCarryingElements($element,
true));
84 $conditional_elements = [];
86 foreach ($data_carriers as $data_carrier) {
87 $conditional_element =
null;
88 foreach ($this->vocabulary_adapter->slotsForElementWithoutCondition($data_carrier) as $slot) {
93 if ($el = $this->vocabulary_adapter->findElementOfCondition($slot, $data_carrier, ...$data_carriers)) {
94 $conditional_element = $data_carrier;
99 $path_string = $this->path_factory->toElement($data_carrier,
true)
101 $input_elements[$path_string] = $data_carrier;
102 if (isset($conditional_element)) {
103 $conditional_elements[$path_string] = $conditional_element;
108 $exclude_required = [];
109 foreach ($input_elements as $path_string => $input_element) {
110 $data_type = $input_element->getDefinition()->dataType();
111 if (isset($conditional_elements[$path_string])) {
112 $input = $this->types->conditionFactory($data_type)->getConditionInput(
115 $conditional_elements[$path_string]
118 $input = $this->types->factory($data_type)->getInput(
123 $inputs[$path_string] = $input;
129 if (is_null($this->db_dictionary->tagForElement($input_element))) {
130 $exclude_required[] = $path_string;
135 $fields = $this->ui_factory->section(
137 $this->presenter->elements()->nameWithParents($context_element)
140 $fields = $this->ui_factory->group(
$inputs);
155 $this->
refinery->custom()->transformation(
function ($vs) {
156 foreach ($vs as $key => $value) {
157 if (!is_array($value)) {
160 $vs[$key] = $value[0];
161 foreach ($value[1] as $k => $v) {
178 string ...$excluded_input_keys
180 $db_tag = $this->db_dictionary->tagForElement($context_element);
181 if (!is_null($db_tag) && !$db_tag->hasData()) {
185 $this->
refinery->custom()->constraint(
186 function ($vs) use ($excluded_input_keys) {
187 foreach ($vs as $p => $v) {
188 if (in_array($p, $excluded_input_keys)) {
191 if ($v !==
'' && $v !==
null) {
197 $this->presenter->utilities()->txt(
'meta_error_empty_input')
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null