Skip to content
Snippets Groups Projects

Issue #3310558: How to set option in Book Outline after Create or Update node

Merged Issue #3310558: How to set option in Book Outline after Create or Update node
Merged mxh requested to merge issue/eca-3310558:3310558-how-to-set into 1.1.x
1 file
+ 27
0
Compare changes
  • Side-by-side
  • Inline
@@ -186,8 +186,35 @@ trait FormFieldPluginTrait {
@@ -186,8 +186,35 @@ trait FormFieldPluginTrait {
$key = array_pop($name_array);
$key = array_pop($name_array);
foreach ($this->lookupFormElements($form, $key) as &$element) {
foreach ($this->lookupFormElements($form, $key) as &$element) {
if (empty($name_array) || (isset($element['#parents']) && array_intersect($name_array, $element['#parents']) === $name_array) || (isset($element['#array_parents']) && array_intersect($name_array, $element['#array_parents']) === $name_array)) {
if (empty($name_array) || (isset($element['#parents']) && array_intersect($name_array, $element['#parents']) === $name_array) || (isset($element['#array_parents']) && array_intersect($name_array, $element['#array_parents']) === $name_array)) {
 
// Found the element due to defined parents or array_parents.
return $element;
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);
}
}
// Although not officially supported, try to get a target element using
// Although not officially supported, try to get a target element using
Loading