From 17043c501b3e3c40e6729f7748512cd1ac1a0b9a Mon Sep 17 00:00:00 2001 From: lisps Date: Wed, 2 Nov 2016 11:08:55 +0100 Subject: [PATCH 1/5] use correct field on dependent fieldsets --- helper/action.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/helper/action.php b/helper/action.php index 8484ac3..52531c5 100644 --- a/helper/action.php +++ b/helper/action.php @@ -90,10 +90,33 @@ function prepareNoincludeReplacement() { * @return array */ function prepareFieldReplacements($fields) { + $use_fieldset = true; + foreach ($fields as $field) { $label = $field->getParam('label'); $value = $field->getParam('value'); + if($field->getFieldType() === 'fieldset') { + if(!empty($field->depends_on)) { + foreach($fields as $field_tmp) { + if($field_tmp->getParam('label') === $field->depends_on[0] && $field_tmp->getParam('value') !== $field->depends_on[1]) { + $use_fieldset = false; + } else if ($field_tmp->getParam('label') === $field->depends_on[0] && $field_tmp->getParam('value') === $field->depends_on[1]) { + $use_fieldset = true; + } + } + } else { + $use_fieldset = true; + } + } + + if(!$use_fieldset) continue; + + if($field->getParam('cmd') == 'textarea') { + $value = str_replace("\r", '', $value); + $value = str_replace("\n", ' \\\\\\\\ ', $value); + } + //field replacements $this->prepareFieldReplacement($label, $value); } From ce07294a4c8485018c026596b7bf4ee6ad12c96e Mon Sep 17 00:00:00 2001 From: lisps Date: Wed, 2 Nov 2016 11:10:33 +0100 Subject: [PATCH 2/5] remove wrong lines --- helper/action.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/helper/action.php b/helper/action.php index 52531c5..ec100f0 100644 --- a/helper/action.php +++ b/helper/action.php @@ -111,11 +111,6 @@ function prepareFieldReplacements($fields) { } if(!$use_fieldset) continue; - - if($field->getParam('cmd') == 'textarea') { - $value = str_replace("\r", '', $value); - $value = str_replace("\n", ' \\\\\\\\ ', $value); - } //field replacements $this->prepareFieldReplacement($label, $value); From 598f4a901b0a4220c930efdfc1fa590add6be9e7 Mon Sep 17 00:00:00 2001 From: lisps Date: Thu, 3 Nov 2016 08:20:41 +0100 Subject: [PATCH 3/5] use $field->hidden to identify field in hidden fieldsets --- helper/action.php | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/helper/action.php b/helper/action.php index ec100f0..e08756c 100644 --- a/helper/action.php +++ b/helper/action.php @@ -90,28 +90,13 @@ function prepareNoincludeReplacement() { * @return array */ function prepareFieldReplacements($fields) { - $use_fieldset = true; - foreach ($fields as $field) { + //do not use fields in hidden fieldsets + if($field->hidden) continue; + $label = $field->getParam('label'); $value = $field->getParam('value'); - if($field->getFieldType() === 'fieldset') { - if(!empty($field->depends_on)) { - foreach($fields as $field_tmp) { - if($field_tmp->getParam('label') === $field->depends_on[0] && $field_tmp->getParam('value') !== $field->depends_on[1]) { - $use_fieldset = false; - } else if ($field_tmp->getParam('label') === $field->depends_on[0] && $field_tmp->getParam('value') === $field->depends_on[1]) { - $use_fieldset = true; - } - } - } else { - $use_fieldset = true; - } - } - - if(!$use_fieldset) continue; - //field replacements $this->prepareFieldReplacement($label, $value); } From 5214dbfd065ca7cab1be9efac56ee81797192991 Mon Sep 17 00:00:00 2001 From: lisps Date: Mon, 7 Nov 2016 08:57:29 +0100 Subject: [PATCH 4/5] replace also hidden fields so default values can be used on replacement --- helper/action.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/helper/action.php b/helper/action.php index e08756c..0f6d531 100644 --- a/helper/action.php +++ b/helper/action.php @@ -92,7 +92,12 @@ function prepareNoincludeReplacement() { function prepareFieldReplacements($fields) { foreach ($fields as $field) { //do not use fields in hidden fieldsets - if($field->hidden) continue; + if($field->hidden) { + if(!isset($this->patterns[$label])) { //set to null so default value can be used on replacement + $this->prepareFieldReplacement($label, null); + } + continue; + } $label = $field->getParam('label'); $value = $field->getParam('value'); From 9829b9de2d6392faeaafe752c548833974c0477b Mon Sep 17 00:00:00 2001 From: lisps Date: Mon, 7 Nov 2016 09:01:15 +0100 Subject: [PATCH 5/5] fix last commit --- helper/action.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/helper/action.php b/helper/action.php index 0f6d531..c7ecf72 100644 --- a/helper/action.php +++ b/helper/action.php @@ -91,6 +91,9 @@ function prepareNoincludeReplacement() { */ function prepareFieldReplacements($fields) { foreach ($fields as $field) { + $label = $field->getParam('label'); + $value = $field->getParam('value'); + //do not use fields in hidden fieldsets if($field->hidden) { if(!isset($this->patterns[$label])) { //set to null so default value can be used on replacement @@ -98,9 +101,6 @@ function prepareFieldReplacements($fields) { } continue; } - - $label = $field->getParam('label'); - $value = $field->getParam('value'); //field replacements $this->prepareFieldReplacement($label, $value);