aboutsummaryrefslogtreecommitdiff
path: root/lib/classes/forms/Form.php
diff options
context:
space:
mode:
authorAndré Noack <noack@data-quest.de>2024-02-02 10:26:07 +0000
committerAndré Noack <noack@data-quest.de>2024-02-02 10:26:07 +0000
commitc79263d70eac66dce4189df797da71ba232935e0 (patch)
tree85c63d4f00e628879d249375ba6e278588e66569 /lib/classes/forms/Form.php
parentc15ee4ba159b4a2c01109e3dcbbcdf030c867aa1 (diff)
Resolve "FormBuilder kann nicht mit zusätzlichen SORM Attributen umgehen"
Closes #3706 Merge request studip/studip!2578
Diffstat (limited to 'lib/classes/forms/Form.php')
-rw-r--r--lib/classes/forms/Form.php14
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/classes/forms/Form.php b/lib/classes/forms/Form.php
index 5e27895..4e384b1 100644
--- a/lib/classes/forms/Form.php
+++ b/lib/classes/forms/Form.php
@@ -129,7 +129,11 @@ class Form extends Part
}
foreach ($params['fields'] as $fieldname => $fielddata) {
if (is_array($fielddata) && !array_key_exists('value', $fielddata)) {
- if ($object->isField($fieldname)) {
+ if (
+ $object->isField($fieldname)
+ || $object->isAdditionalField($fieldname)
+ || $object->isAliasField($fieldname)
+ ) {
$params['fields'][$fieldname]['value'] = $object[$fieldname];
}
}
@@ -412,7 +416,6 @@ class Form extends Part
}
$all_values[$input->getName()] = $value;
}
-
foreach ($this->parts as $part) {
$context = $part->getContextObject();
if ($context && method_exists($context, 'store')) {
@@ -514,7 +517,12 @@ class Form extends Part
if (
$context
&& is_subclass_of($context, \SimpleORMap::class)
- && ($context->isField($input->getName()) || $context->isRelation($input->getName()))
+ && (
+ $context->isField($input->getName())
+ || $context->isAdditionalField($input->getName())
+ || $context->isAliasField($input->getName())
+ || $context->isRelation($input->getName())
+ )
) {
return function ($value) use ($context, $input) {
if ($context && !$value && $value !== null) {