Skip to content

Commit

Permalink
Prevent overwriting of multilang fields in oxshops when no value is p…
Browse files Browse the repository at this point in the history
…resent in yaml
  • Loading branch information
BSOxid committed Sep 18, 2023
1 parent 48d5895 commit c5eef4d
Showing 1 changed file with 17 additions and 12 deletions.
29 changes: 17 additions & 12 deletions Core/ConfigImport.php
Original file line number Diff line number Diff line change
Expand Up @@ -244,29 +244,34 @@ protected function importShopsConfig($aConfigValues)
if ($langId == 0) {
continue;
}
$availableInLangs = $oShop->getAvailableInLangs();
$viewNameGenerator = oxNew(\OxidEsales\Eshop\Core\TableViewNameGenerator::class);
$viewName = $viewNameGenerator->getViewName('oxshops', $langId);
substr($viewName, 12);
$oShop->setLanguage($langId);
if (!is_numeric(substr($viewName, 12))) {
$oShop->loadInLang($langId, $sShopId);
}
foreach ($aOxShopSettings as $sVarName => $mVarValue) {
$iPosUnderscore = strrpos($sVarName, '_');
if ($iPosUnderscore !== false) {
$sStringAfterUnderscore = substr($sVarName, $iPosUnderscore + 1);
if (is_numeric($sStringAfterUnderscore) && $sStringAfterUnderscore == $langId) {
$sFiledName = substr($sVarName, 0, $iPosUnderscore); // String before last underscore
$aOxShopSettings[$sFiledName] = $mVarValue;
if (isset($availableInLangs[$langId])) {
if (!is_numeric(substr($viewName, 12))) {
$oShop->loadInLang($langId, $sShopId);
}
foreach ($aOxShopSettings as $sVarName => $mVarValue) {
$iPosUnderscore = strrpos($sVarName, '_');
if ($iPosUnderscore !== false) {
$sStringAfterUnderscore = substr($sVarName, $iPosUnderscore + 1);
if (is_numeric($sStringAfterUnderscore) && $sStringAfterUnderscore == $langId) {
$sFiledName = substr($sVarName, 0, $iPosUnderscore); // String before last underscore
$aOxShopSettings[$sFiledName] = $mVarValue;
}
}
}
$oShop->assign($aOxShopSettings);
$oShop->save();
}
$oShop->assign($aOxShopSettings);
$oShop->save();
}
}
}
}


/**
* Create new sub-shop through config file
*
Expand Down

0 comments on commit c5eef4d

Please sign in to comment.