Skip to content
Snippets Groups Projects
Commit b1d444c5 authored by mxh's avatar mxh Committed by Jürgen Haas
Browse files

Issue #3310558 by mxh, antiden, jurgenhaas: How to set option in Book Outline...

Issue #3310558 by mxh, antiden, jurgenhaas: How to set option in Book Outline after Create or Update node
parent 3d8cb502
No related branches found
No related tags found
No related merge requests found
......@@ -177,8 +177,35 @@ trait FormFieldPluginTrait {
$key = array_pop($name_array);
foreach ($this->lookupFormElements($form, $key) as &$element) {
if (empty($name_array) || (isset($element['#parents']) && $name_array === $element['#parents']) || (isset($element['#array_parents']) && $name_array === $element['#array_parents'])) {
// Found the element due to defined parents or array_parents.
return $element;
}
if (empty($name_array)) {
continue;
}
// For early form builds, parents and array_parents may not be available.
// For such a case, have another deep look into the render array.
$lookup = NULL;
$parents = [];
$lookup = static function (array &$elements, array &$name_array) use (&$lookup, &$parents) {
if ($parent = &NestedArray::getValue($elements, $name_array)) {
$parents[] = &$parent;
}
else {
foreach (Element::children($elements) as $c_key) {
$lookup($elements[$c_key], $name_array);
}
}
};
$lookup($form, $name_array);
foreach ($parents as &$parent) {
if (isset($parent[$key]) && ($parent[$key] === $element)) {
return $element;
}
}
unset($parent);
}
return $nothing;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment