From 7930aba4ca008f3b72ba5517ab2ddc0e18d3c6f0 Mon Sep 17 00:00:00 2001 From: Cameron Date: Mon, 1 Nov 2021 14:41:40 -0700 Subject: [PATCH] Fixes #4609 - Quick fix for inconsistent drop-down behavior PHP7 -> PHP8. --- e107_handlers/form_handler.php | 8 +++++++- e107_tests/tests/unit/e_formTest.php | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/e107_handlers/form_handler.php b/e107_handlers/form_handler.php index d001c43ba..59e4d4e42 100644 --- a/e107_handlers/form_handler.php +++ b/e107_handlers/form_handler.php @@ -3487,6 +3487,12 @@ var_dump($select_options);*/ $opts = $options; + + if($selected === array(0=>'')) // quick fix. @see github issue #4609 + { + $selected = 0; + } + foreach ((array) $option_array as $value => $label) { @@ -6740,7 +6746,7 @@ var_dump($select_options);*/ $eloptions['multiple'] = true; } unset($parms['__options']); - if(!empty($eloptions['multiple']) && !is_array($value)) + if(!empty($eloptions['multiple']) && !is_array($value) && !empty($value)) { $value = explode(',', $value); } diff --git a/e107_tests/tests/unit/e_formTest.php b/e107_tests/tests/unit/e_formTest.php index 6f858246a..68f707c00 100644 --- a/e107_tests/tests/unit/e_formTest.php +++ b/e107_tests/tests/unit/e_formTest.php @@ -790,11 +790,11 @@ class e_formTest extends \Codeception\Test\Unit ); - foreach($tests as $row) + foreach($tests as $index => $row) { $actual = $this->_frm->option_multi($row['options'],$row['value']); $actual = str_replace("\n", '', $actual); - $this->assertSame($row['expected'], $actual); + $this->assertSame($row['expected'], $actual, 'Test #'.$index.' failed'); } }