diff --git a/classes/FeatureValue.php b/classes/FeatureValue.php index 9ad101f95..b95f8ca16 100644 --- a/classes/FeatureValue.php +++ b/classes/FeatureValue.php @@ -128,34 +128,27 @@ class FeatureValueCore extends ObjectModel return $tab['value']; } - public static function addFeatureValueImport($id_feature, $name) + public static function addFeatureValueImport($id_feature, $value) { - $rq = Db::getInstance()->executeS(' - SELECT fv.`id_feature_value` - FROM '._DB_PREFIX_.'feature_value fv - LEFT JOIN '._DB_PREFIX_.'feature_value_lang fvl - ON (fvl.`id_feature_value` = fv.`id_feature_value`) - WHERE `value` = \''.pSQL($name).'\' - AND fv.`id_feature` = '.(int)$id_feature.' - GROUP BY fv.`id_feature_value` LIMIT 1 - '); + $id_feature_value = Db::getInstance()->getValue(' + SELECT fv.`id_feature_value` + FROM '._DB_PREFIX_.'feature_value fv + LEFT JOIN '._DB_PREFIX_.'feature_value_lang fvl ON (fvl.`id_feature_value` = fv.`id_feature_value`) + WHERE `value` = \''.pSQL($value).'\' + AND fv.`id_feature` = '.(int)$id_feature.' + GROUP BY fv.`id_feature_value`'); + if ($id_feature_value) + return (int)$id_feature_value; - if (!isset($rq[0]['id_feature_value']) || !$id_feature_value = (int)$rq[0]['id_feature_value']) - { - // Feature doesn't exist, create it - $feature_value = new FeatureValue(); + // Feature doesn't exist, create it + $feature_value = new FeatureValue(); + $feature_value->id_feature = (int)$id_feature; + $feature_value->custom = 0; + foreach (Language::getLanguages() as $language) + $feature_value->value[$language['id_lang']] = $value; + $feature_value->add(); - $languages = Language::getLanguages(); - foreach ($languages as $language) - $feature_value->value[$language['id_lang']] = strval($name); - - $feature_value->id_feature = (int)$id_feature; - $feature_value->custom = 1; - $feature_value->add(); - - return (int)$feature_value->id; - } - return (int)$id_feature_value; + return (int)$feature_value->id; } public function add($autodate = true, $nullValues = false)