From 2164c0761623ac0dcd8e4c216a27e0ca17f2d23b Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Fri, 6 Apr 2018 10:58:56 +1000 Subject: [PATCH] Preserve multi field types with trigger use Refs #3195 Refs #2861 Refs https://github.com/daftspunk/oc-test-plugin/pull/41 --- modules/backend/classes/FormField.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/backend/classes/FormField.php b/modules/backend/classes/FormField.php index f2812da00..896ee07f8 100644 --- a/modules/backend/classes/FormField.php +++ b/modules/backend/classes/FormField.php @@ -467,6 +467,7 @@ class FormField $triggerField = array_get($this->trigger, 'field'); $triggerCondition = array_get($this->trigger, 'condition'); $triggerForm = $this->arrayName; + $triggerMulti = ''; // Apply these to container if (in_array($triggerAction, ['hide', 'show']) && $position != 'container') { @@ -485,11 +486,18 @@ class FormField $triggerForm = HtmlHelper::reduceFieldNameHierarchy($triggerForm, $triggerFieldParentLevel); } + // Preserve multi field types + if (Str::endsWith($triggerField, '[]')) { + $triggerField = substr($triggerField, 0, -2); + $triggerMulti = '[]'; + } + + // Final compilation if ($this->arrayName) { - $fullTriggerField = $triggerForm.'['.implode('][', HtmlHelper::nameToArray($triggerField)).']'; + $fullTriggerField = $triggerForm.'['.implode('][', HtmlHelper::nameToArray($triggerField)).']'.$triggerMulti; } else { - $fullTriggerField = $triggerField; + $fullTriggerField = $triggerField.$triggerMulti; } $newAttributes = [