From b8cebb6d1c6230b5bd8a8bb1eabbd94fd5e15904 Mon Sep 17 00:00:00 2001 From: smiley Date: Sat, 14 Oct 2023 17:54:02 +0200 Subject: [PATCH] :octocat: QROutputAbstract::setModuleValues() allow setting extra values from options --- src/Output/QROutputAbstract.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Output/QROutputAbstract.php b/src/Output/QROutputAbstract.php index a0914ff68..3d81cf138 100644 --- a/src/Output/QROutputAbstract.php +++ b/src/Output/QROutputAbstract.php @@ -94,12 +94,16 @@ abstract class QROutputAbstract implements QROutputInterface{ */ protected function setModuleValues():void{ + // first fill the map with the default values foreach($this::DEFAULT_MODULE_VALUES as $M_TYPE => $defaultValue){ - $value = ($this->options->moduleValues[$M_TYPE] ?? null); + $this->moduleValues[$M_TYPE] = $this->getDefaultModuleValue($defaultValue); + } - $this->moduleValues[$M_TYPE] = $this::moduleValueIsValid($value) - ? $this->prepareModuleValue($value) - : $this->getDefaultModuleValue($defaultValue); + // now loop over the options values to replace defaults and add extra values + foreach($this->options->moduleValues as $M_TYPE => $value){ + if($this::moduleValueIsValid($value)){ + $this->moduleValues[$M_TYPE] = $this->prepareModuleValue($value); + } } }