From 97a50f54a296e9282d6ce91baee6b437c37036be Mon Sep 17 00:00:00 2001 From: lLefevre Date: Mon, 15 Oct 2012 09:36:01 +0000 Subject: [PATCH] [-] BO : fix #PSCFV-4988 git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@17858 b9a71923-0436-4b27-9f14-aed3839534dd --- classes/Feature.php | 35 ++++++++++++++------- classes/FeatureValue.php | 1 - controllers/admin/AdminImportController.php | 2 +- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/classes/Feature.php b/classes/Feature.php index d284739e0..e29c3766b 100644 --- a/classes/Feature.php +++ b/classes/Feature.php @@ -203,19 +203,30 @@ class FeatureCore extends ObjectModel WHERE `name` = \''.pSQL($name).'\' GROUP BY `id_feature` '); - if (!empty($rq)) - return (int)$rq['id_feature']; - // Feature doesn't exist, create it - $feature = new Feature(); - $languages = Language::getLanguages(); - foreach ($languages as $language) - $feature->name[$language['id_lang']] = strval($name); - if ($position) - $feature->position = (int)$position; + if (empty($rq)) + { + // Feature doesn't exist, create it + $feature = new Feature(); + $languages = Language::getLanguages(); + foreach ($languages as $language) + $feature->name[$language['id_lang']] = strval($name); + if ($position) + $feature->position = (int)$position; + else + $feature->position = Feature::getHigherPosition() + 1; + $feature->add(); + return $feature->id; + } else - $feature->position = Feature::getHigherPosition() + 1; - $feature->add(); - return $feature->id; + { + if ($position && $feature = new Feature((int)$rq['id_feature'])) + { + $feature->position = (int)$position; + $feature->update(); + } + + return (int)$rq['id_feature']; + } } public static function getFeaturesForComparison($list_ids_product, $id_lang) diff --git a/classes/FeatureValue.php b/classes/FeatureValue.php index 09bcc4df5..3f7ccbf0b 100644 --- a/classes/FeatureValue.php +++ b/classes/FeatureValue.php @@ -138,7 +138,6 @@ class FeatureValueCore extends ObjectModel ON (fvl.`id_feature_value` = fv.`id_feature_value`) WHERE `value` = \''.pSQL($name).'\' AND fv.`id_feature` = '.(int)$id_feature.' - AND fv.`custom` = 1 GROUP BY fv.`id_feature_value` LIMIT 1 '); diff --git a/controllers/admin/AdminImportController.php b/controllers/admin/AdminImportController.php index 0b8cdff54..b06678cf9 100644 --- a/controllers/admin/AdminImportController.php +++ b/controllers/admin/AdminImportController.php @@ -1437,7 +1437,7 @@ class AdminImportControllerCore extends AdminController $tab_feature = explode(':', $single_feature); $feature_name = trim($tab_feature[0]); $feature_value = trim($tab_feature[1]); - $position = isset($tab_feature[2]) ? $tab_feature[1]: false; + $position = isset($tab_feature[2]) ? $tab_feature[2]: false; $id_feature = Feature::addFeatureImport($feature_name, $position); $id_feature_value = FeatureValue::addFeatureValueImport($id_feature, $feature_value); Product::addFeatureProductImport($product->id, $id_feature, $id_feature_value);