From 0f981a9e51aade52e559891857e03c35297679b2 Mon Sep 17 00:00:00 2001 From: RainLoop Team Date: Sun, 22 May 2016 16:44:43 +0300 Subject: [PATCH] Improve ENV replacement --- .../libraries/RainLoop/Config/Application.php | 27 +++++++++++++------ .../Providers/AddressBook/PdoAddressBook.php | 2 -- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php index 619e3aaca..893f864ac 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php @@ -66,15 +66,26 @@ class Application extends \RainLoop\Config\AbstractConfig $sKey = \strtolower($sSection.'.'.$sName); if (\in_array($sKey, $this->aReplaceEnv) && false !== strpos($mResult, '$')) { - foreach ($_ENV as $sKey => $sValue) - { - $mResult = \str_replace('$'.$sKey, $sValue, $mResult); - } + $mResult = \preg_replace_callback('/\$([^\s]+)/', function($aMatch) { - foreach ($_SERVER as $sKey => $sValue) - { - $mResult = \str_replace('$'.$sKey, $sValue, $mResult); - } + if (!empty($aMatch[0]) && !empty($aMatch[1])) + { + if (!empty($_ENV[$aMatch[1]])) + { + return $_SERVER[$aMatch[1]]; + } + + if (!empty($_SERVER[$aMatch[1]])) + { + return $_SERVER[$aMatch[1]]; + } + + return $aMatch[0]; + } + + return ''; + + }, $mResult); } } diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php index af540262f..40a3f646b 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php @@ -619,7 +619,6 @@ class PdoAddressBook foreach ($aPaths as $sKey => $sValue) { $sValue = \MailSo\Base\Utils::StrToLowerIfAscii($sValue); - if (\in_array($sValue, array('contacts', 'default', 'addressbook', 'address book'))) { $sNewPath = $sKey; @@ -639,7 +638,6 @@ class PdoAddressBook } } - $sPath = $sNewPath; $bGood = $this->checkContactsPath($oClient, $sPath);