From 3e96d1d1168c89797357436b83728249f394b8c2 Mon Sep 17 00:00:00 2001 From: vedatakd Date: Mon, 14 Oct 2019 19:04:21 +0300 Subject: [PATCH] #452 Bug fixed related the System language on posting ads --- .../src/Adv/Listener/DefaultLocaleAddEnv.php | 43 +++++++++++++++++++ .../src/AdvsModuleServiceProvider.php | 8 ++-- 2 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 addons/default/visiosoft/advs-module/src/Adv/Listener/DefaultLocaleAddEnv.php diff --git a/addons/default/visiosoft/advs-module/src/Adv/Listener/DefaultLocaleAddEnv.php b/addons/default/visiosoft/advs-module/src/Adv/Listener/DefaultLocaleAddEnv.php new file mode 100644 index 000000000..8de9a78a1 --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Adv/Listener/DefaultLocaleAddEnv.php @@ -0,0 +1,43 @@ +environmentFilePath(); + $str = file_get_contents($envFile); + + if (count($values) > 0) { + foreach ($values as $envKey => $envValue) { + + $str .= "\n"; // In case the searched variable is in the last line without \n + $keyPosition = strpos($str, "{$envKey}="); + $endOfLinePosition = strpos($str, "\n", $keyPosition); + $oldLine = substr($str, $keyPosition, $endOfLinePosition - $keyPosition); + + // If key does not exist, add it + if (!$keyPosition || !$endOfLinePosition || !$oldLine) { + $str .= "{$envKey}={$envValue}\n"; + } else { + $str = str_replace($oldLine, "{$envKey}={$envValue}", $str); + } + + } + } + + $str = substr($str, 0, -1); + if (!file_put_contents($envFile, $str)) return false; + return true; + + } + + public function handle(SettingsWereSaved $event) + { + $this->setEnvironmentValue(['APP_FALLBACK_LOCALE' => strtoupper($event->getBuilder()->getPostValue('default_locale'))]); + } +} + diff --git a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php index 6e353d9f8..815a892df 100644 --- a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php +++ b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php @@ -1,5 +1,6 @@ [ - // Visiosoft\AdvsModule\Listener\ExampleListener::class, - //], + SettingsWereSaved::class => [ + DefaultLocaleAddEnv::class, + ], ]; /**