From 3c2a369d6cadc4d2141ffd608d5cee55ed844a0f Mon Sep 17 00:00:00 2001 From: janstoeckler Date: Tue, 8 Dec 2015 18:54:10 +0100 Subject: [PATCH 1/3] Update EntityReference.php Add TRUE to in_array() as third argument to fix PHP WTF with in_array(). This corrects some random behavior when using EB on multiple nested paragraph bundles on a page. --- src/Plugin/Field/FieldWidget/EntityReference.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Plugin/Field/FieldWidget/EntityReference.php b/src/Plugin/Field/FieldWidget/EntityReference.php index 59804f0..049a82d 100644 --- a/src/Plugin/Field/FieldWidget/EntityReference.php +++ b/src/Plugin/Field/FieldWidget/EntityReference.php @@ -211,7 +211,7 @@ function formElement(FieldItemListInterface $items, $delta, array $element, arra $ids = []; $entities = []; - if (($trigger = $form_state->getTriggeringElement()) && in_array($this->fieldDefinition->getName(), $trigger['#parents'])) { + if (($trigger = $form_state->getTriggeringElement()) && in_array($this->fieldDefinition->getName(), $trigger['#parents'], TRUE)) { // Submit was triggered by hidden "target_id" element when entities were // added via entity browser. if (!empty($trigger['#ajax']['event']) && $trigger['#ajax']['event'] == 'entity_browser_value_updated') { From 6f3a541fcb0162359036dd351b09c67d269a3559 Mon Sep 17 00:00:00 2001 From: janstoeckler Date: Wed, 9 Dec 2015 18:46:17 +0100 Subject: [PATCH 2/3] Update EntityReference.php --- src/Plugin/Field/FieldWidget/EntityReference.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Plugin/Field/FieldWidget/EntityReference.php b/src/Plugin/Field/FieldWidget/EntityReference.php index 049a82d..1c96c63 100644 --- a/src/Plugin/Field/FieldWidget/EntityReference.php +++ b/src/Plugin/Field/FieldWidget/EntityReference.php @@ -211,7 +211,7 @@ function formElement(FieldItemListInterface $items, $delta, array $element, arra $ids = []; $entities = []; - if (($trigger = $form_state->getTriggeringElement()) && in_array($this->fieldDefinition->getName(), $trigger['#parents'], TRUE)) { + if (($trigger = $form_state->getTriggeringElement()) && ((array_pop($trigger) === 'target_id') && (array_pop($trigger) === $this->fieldDefinition->getName()))) { // Submit was triggered by hidden "target_id" element when entities were // added via entity browser. if (!empty($trigger['#ajax']['event']) && $trigger['#ajax']['event'] == 'entity_browser_value_updated') { From df9093085a819b7c64db409cd0ea0fc702b8bc93 Mon Sep 17 00:00:00 2001 From: janstoeckler Date: Thu, 10 Dec 2015 09:23:31 +0100 Subject: [PATCH 3/3] Update EntityReference.php --- src/Plugin/Field/FieldWidget/EntityReference.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Plugin/Field/FieldWidget/EntityReference.php b/src/Plugin/Field/FieldWidget/EntityReference.php index 1c96c63..d0e2eb2 100644 --- a/src/Plugin/Field/FieldWidget/EntityReference.php +++ b/src/Plugin/Field/FieldWidget/EntityReference.php @@ -211,7 +211,7 @@ function formElement(FieldItemListInterface $items, $delta, array $element, arra $ids = []; $entities = []; - if (($trigger = $form_state->getTriggeringElement()) && ((array_pop($trigger) === 'target_id') && (array_pop($trigger) === $this->fieldDefinition->getName()))) { + if (($trigger = $form_state->getTriggeringElement()) && ((end($trigger['#parents']) === 'target_id') && ($trigger['#parents'][sizeof($trigger['#parents']) - 2] === $this->fieldDefinition->getName()))) { // Submit was triggered by hidden "target_id" element when entities were // added via entity browser. if (!empty($trigger['#ajax']['event']) && $trigger['#ajax']['event'] == 'entity_browser_value_updated') {