[-] Bo : Fix warnings #PSCFV-6648

This commit is contained in:
Gregory Roussac
2013-01-29 11:55:51 +01:00
parent 1d37c98201
commit 84005fea26
+182 -167
View File
@@ -644,10 +644,14 @@ class AdminImportControllerCore extends AdminController
do $uniqid_path = _PS_UPLOAD_DIR_.uniqid(); while (file_exists($uniqid_path)); do $uniqid_path = _PS_UPLOAD_DIR_.uniqid(); while (file_exists($uniqid_path));
file_put_contents($uniqid_path, $field); file_put_contents($uniqid_path, $field);
$fd = fopen($uniqid_path, 'r'); $tab = '';
$tab = fgetcsv($fd, MAX_LINE_SIZE, $separator); if(!empty($uniqid_path))
fclose($fd); {
unlink($uniqid_path); $fd = fopen($uniqid_path, 'r');
$tab = fgetcsv($fd, MAX_LINE_SIZE, $separator);
fclose($fd);
unlink($uniqid_path);
}
if (empty($tab) || (!is_array($tab))) if (empty($tab) || (!is_array($tab)))
return array(); return array();
@@ -727,8 +731,9 @@ class AdminImportControllerCore extends AdminController
public static function getMaskedRow($row) public static function getMaskedRow($row)
{ {
$res = array(); $res = array();
foreach (self::$column_mask as $type => $nb) if (is_array(self::$column_mask))
$res[$type] = isset($row[$nb]) ? $row[$nb] : null; foreach (self::$column_mask as $type => $nb)
$res[$type] = isset($row[$nb]) ? $row[$nb] : null;
if (Tools::getValue('forceIds')) // if you choose to force table before import the column id is remove from the CSV file. if (Tools::getValue('forceIds')) // if you choose to force table before import the column id is remove from the CSV file.
unset($res['id']); unset($res['id']);
@@ -972,8 +977,8 @@ class AdminImportControllerCore extends AdminController
{ {
$this->errors[] = sprintf( $this->errors[] = sprintf(
Tools::displayError('%1$s (ID: %2$s) cannot be saved'), Tools::displayError('%1$s (ID: %2$s) cannot be saved'),
$info['name'], (isset($info['name']) ? Tools::safeOutput($info['name']) : 'No Name'),
(isset($info['id']) ? $info['id'] : 'null') (isset($info['id']) ? Tools::safeOutput($info['id']) : 'No ID')
); );
$error_tmp = ($field_error !== true ? $field_error : '').($lang_field_error !== true ? $lang_field_error : '').Db::getInstance()->getMsgError(); $error_tmp = ($field_error !== true ? $field_error : '').($lang_field_error !== true ? $lang_field_error : '').Db::getInstance()->getMsgError();
if ($error_tmp != '') if ($error_tmp != '')
@@ -1303,8 +1308,8 @@ class AdminImportControllerCore extends AdminController
{ {
$this->errors[] = sprintf( $this->errors[] = sprintf(
Tools::displayError('%1$s (ID: %2$s) cannot be saved'), Tools::displayError('%1$s (ID: %2$s) cannot be saved'),
$info['name'], (isset($info['name']) ? Tools::safeOutput($info['name']) : 'No Name'),
(isset($info['id']) ? $info['id'] : 'null') (isset($info['id']) ? Tools::safeOutput($info['id']) : 'No ID')
); );
$this->errors[] = ($field_error !== true ? $field_error : '').($lang_field_error !== true ? $lang_field_error : ''). $this->errors[] = ($field_error !== true ? $field_error : '').($lang_field_error !== true ? $lang_field_error : '').
Db::getInstance()->getMsgError(); Db::getInstance()->getMsgError();
@@ -1347,7 +1352,7 @@ class AdminImportControllerCore extends AdminController
$specific_price->from = (isset($info['reduction_from']) && Validate::isDate($info['reduction_from'])) ? $info['reduction_from'] : '0000-00-00 00:00:00'; $specific_price->from = (isset($info['reduction_from']) && Validate::isDate($info['reduction_from'])) ? $info['reduction_from'] : '0000-00-00 00:00:00';
$specific_price->to = (isset($info['reduction_to']) && Validate::isDate($info['reduction_to'])) ? $info['reduction_to'] : '0000-00-00 00:00:00'; $specific_price->to = (isset($info['reduction_to']) && Validate::isDate($info['reduction_to'])) ? $info['reduction_to'] : '0000-00-00 00:00:00';
if (!$specific_price->add()) if (!$specific_price->add())
$this->addProductWarning($info['name'], $product->id, $this->l('Discount is invalid')); $this->addProductWarning(Tools::safeOutput($info['name']), $product->id, $this->l('Discount is invalid'));
} }
if (isset($product->tags) && !empty($product->tags)) if (isset($product->tags) && !empty($product->tags))
@@ -1363,7 +1368,7 @@ class AdminImportControllerCore extends AdminController
$is_tag_added = Tag::addTags($key, $product->id, $tags, $this->multiple_value_separator); $is_tag_added = Tag::addTags($key, $product->id, $tags, $this->multiple_value_separator);
if (!$is_tag_added) if (!$is_tag_added)
{ {
$this->addProductWarning($info['name'], $product->id, $this->l('Tags list is invalid')); $this->addProductWarning(Tools::safeOutput($info['name']), $product->id, $this->l('Tags list is invalid'));
break; break;
} }
} }
@@ -1380,7 +1385,7 @@ class AdminImportControllerCore extends AdminController
$is_tag_added = Tag::addTags($key, $product->id, $str, $this->multiple_value_separator); $is_tag_added = Tag::addTags($key, $product->id, $str, $this->multiple_value_separator);
if (!$is_tag_added) if (!$is_tag_added)
{ {
$this->addProductWarning($info['name'], $product->id, 'Invalid tag(s) ('.$str.')'); $this->addProductWarning(Tools::safeOutput($info['name']), (int)$product->id, 'Invalid tag(s) ('.$str.')');
break; break;
} }
} }
@@ -1445,9 +1450,12 @@ class AdminImportControllerCore extends AdminController
$feature_name = trim($tab_feature[0]); $feature_name = trim($tab_feature[0]);
$feature_value = trim($tab_feature[1]); $feature_value = trim($tab_feature[1]);
$position = isset($tab_feature[2]) ? $tab_feature[2]: false; $position = isset($tab_feature[2]) ? $tab_feature[2]: false;
$id_feature = Feature::addFeatureImport($feature_name, $position); if(!empty($feature_name) && !empty($feature_value))
$id_feature_value = FeatureValue::addFeatureValueImport($id_feature, $feature_value); {
Product::addFeatureProductImport($product->id, $id_feature, $id_feature_value); $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);
}
} }
// clean feature positions to avoid conflict // clean feature positions to avoid conflict
Feature::cleanPositions(); Feature::cleanPositions();
@@ -1511,8 +1519,12 @@ class AdminImportControllerCore extends AdminController
$id_shop_list[] = Shop::getIdByName($shop); $id_shop_list[] = Shop::getIdByName($shop);
else else
$id_shop_list[] = $shop; $id_shop_list[] = $shop;
$product = new Product((int)$info['id_product'], false, $default_language); if(isset($info['id_product']))
$product = new Product((int)$info['id_product'], false, $default_language);
else
continue;
$id_image = null; $id_image = null;
//delete existing images if "delete_existing_images" is set to 1 //delete existing images if "delete_existing_images" is set to 1
@@ -1577,53 +1589,54 @@ class AdminImportControllerCore extends AdminController
$id_attribute_group = 0; $id_attribute_group = 0;
// groups // groups
$groups_attributes = array(); $groups_attributes = array();
foreach (explode($this->multiple_value_separator, $info['group']) as $key => $group) if(isset($info['group']))
{ foreach (explode($this->multiple_value_separator, $info['group']) as $key => $group)
$tab_group = explode(':', $group);
$group = trim($tab_group[0]);
if (!isset($tab_group[1]))
$type = 'select';
else
$type = trim($tab_group[1]);
// sets group
$groups_attributes[$key]['group'] = $group;
// if position is filled
if (isset($tab_group[2]))
$position = trim($tab_group[2]);
else
$position = false;
if (!isset($groups[$group]))
{ {
$obj = new AttributeGroup(); $tab_group = explode(':', $group);
$obj->is_color_group = false; $group = trim($tab_group[0]);
$obj->group_type = pSQL($type); if (!isset($tab_group[1]))
$obj->name[$default_language] = $group; $type = 'select';
$obj->public_name[$default_language] = $group;
$obj->position = (!$position) ? AttributeGroup::getHigherPosition() + 1 : $position;
if (($field_error = $obj->validateFields(UNFRIENDLY_ERROR, true)) === true &&
($lang_field_error = $obj->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true)
{
$obj->add();
$obj->associateTo($id_shop_list);
$groups[$group] = $obj->id;
}
else else
$this->errors[] = ($field_error !== true ? $field_error : '').($lang_field_error !== true ? $lang_field_error : ''); $type = trim($tab_group[1]);
// fils groups attributes // sets group
$id_attribute_group = $obj->id; $groups_attributes[$key]['group'] = $group;
$groups_attributes[$key]['id'] = $id_attribute_group;
// if position is filled
if (isset($tab_group[2]))
$position = trim($tab_group[2]);
else
$position = false;
if (!isset($groups[$group]))
{
$obj = new AttributeGroup();
$obj->is_color_group = false;
$obj->group_type = pSQL($type);
$obj->name[$default_language] = $group;
$obj->public_name[$default_language] = $group;
$obj->position = (!$position) ? AttributeGroup::getHigherPosition() + 1 : $position;
if (($field_error = $obj->validateFields(UNFRIENDLY_ERROR, true)) === true &&
($lang_field_error = $obj->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true)
{
$obj->add();
$obj->associateTo($id_shop_list);
$groups[$group] = $obj->id;
}
else
$this->errors[] = ($field_error !== true ? $field_error : '').($lang_field_error !== true ? $lang_field_error : '');
// fils groups attributes
$id_attribute_group = $obj->id;
$groups_attributes[$key]['id'] = $id_attribute_group;
}
else // alreay exists
{
$id_attribute_group = $groups[$group];
$groups_attributes[$key]['id'] = $id_attribute_group;
}
} }
else // alreay exists
{
$id_attribute_group = $groups[$group];
$groups_attributes[$key]['id'] = $id_attribute_group;
}
}
// inits attribute // inits attribute
$id_product_attribute = 0; $id_product_attribute = 0;
@@ -1631,116 +1644,118 @@ class AdminImportControllerCore extends AdminController
$attributes_to_add = array(); $attributes_to_add = array();
// for each attribute // for each attribute
foreach (explode($this->multiple_value_separator, $info['attribute']) as $key => $attribute) if(isset($info['attribute']))
{ foreach (explode($this->multiple_value_separator, $info['attribute']) as $key => $attribute)
$tab_attribute = explode(':', $attribute);
$attribute = trim($tab_attribute[0]);
// if position is filled
if (isset($tab_attribute[1]))
$position = trim($tab_attribute[1]);
else
$position = false;
if (isset($groups_attributes[$key]))
{ {
$group = $groups_attributes[$key]['group']; $tab_attribute = explode(':', $attribute);
if (!isset($attributes[$group.'_'.$attribute]) && count($groups_attributes[$key]) == 2) $attribute = trim($tab_attribute[0]);
// if position is filled
if (isset($tab_attribute[1]))
$position = trim($tab_attribute[1]);
else
$position = false;
if (isset($groups_attributes[$key]))
{ {
$id_attribute_group = $groups_attributes[$key]['id']; $group = $groups_attributes[$key]['group'];
$obj = new Attribute(); if (!isset($attributes[$group.'_'.$attribute]) && count($groups_attributes[$key]) == 2)
// sets the proper id (corresponding to the right key)
$obj->id_attribute_group = $groups_attributes[$key]['id'];
$obj->name[$default_language] = str_replace('\n', '', str_replace('\r', '', $attribute));
$obj->position = (!$position) ? Attribute::getHigherPosition($groups[$group]) + 1 : $position;
if (($field_error = $obj->validateFields(UNFRIENDLY_ERROR, true)) === true &&
($lang_field_error = $obj->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true)
{ {
$obj->add(); $id_attribute_group = $groups_attributes[$key]['id'];
$obj->associateTo($id_shop_list); $obj = new Attribute();
$attributes[$group.'_'.$attribute] = $obj->id; // sets the proper id (corresponding to the right key)
} $obj->id_attribute_group = $groups_attributes[$key]['id'];
else $obj->name[$default_language] = str_replace('\n', '', str_replace('\r', '', $attribute));
$this->errors[] = ($field_error !== true ? $field_error : '').($lang_field_error !== true ? $lang_field_error : ''); $obj->position = (!$position && isset($groups[$group])) ? Attribute::getHigherPosition($groups[$group]) + 1 : $position;
}
if (($field_error = $obj->validateFields(UNFRIENDLY_ERROR, true)) === true &&
$info['minimal_quantity'] = isset($info['minimal_quantity']) && $info['minimal_quantity'] ? (int)$info['minimal_quantity'] : 1; ($lang_field_error = $obj->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true)
$info['wholesale_price'] = str_replace(',', '.', $info['wholesale_price']);
$info['price'] = str_replace(',', '.', $info['price']);
$info['ecotax'] = str_replace(',', '.', $info['ecotax']);
$info['weight'] = str_replace(',', '.', $info['weight']);
// if a reference is specified for this product, get the associate id_product_attribute to UPDATE
if (isset($info['reference']) && !empty($info['reference']))
{
$id_product_attribute = Combination::getIdByReference($product->id, strval($info['reference']));
// updates the attribute
if ($id_product_attribute)
{
// gets all the combinations of this product
$attribute_combinations = $product->getAttributeCombinations($default_language);
foreach ($attribute_combinations as $attribute_combination)
{ {
if ($id_product_attribute && in_array($id_product_attribute, $attribute_combination)) $obj->add();
$obj->associateTo($id_shop_list);
$attributes[$group.'_'.$attribute] = $obj->id;
}
else
$this->errors[] = ($field_error !== true ? $field_error : '').($lang_field_error !== true ? $lang_field_error : '');
}
$info['minimal_quantity'] = isset($info['minimal_quantity']) && $info['minimal_quantity'] ? (int)$info['minimal_quantity'] : 1;
$info['wholesale_price'] = str_replace(',', '.', $info['wholesale_price']);
$info['price'] = str_replace(',', '.', $info['price']);
$info['ecotax'] = str_replace(',', '.', $info['ecotax']);
$info['weight'] = str_replace(',', '.', $info['weight']);
// if a reference is specified for this product, get the associate id_product_attribute to UPDATE
if (isset($info['reference']) && !empty($info['reference']))
{
$id_product_attribute = Combination::getIdByReference($product->id, strval($info['reference']));
// updates the attribute
if ($id_product_attribute)
{
// gets all the combinations of this product
$attribute_combinations = $product->getAttributeCombinations($default_language);
foreach ($attribute_combinations as $attribute_combination)
{ {
$product->updateAttribute( if ($id_product_attribute && in_array($id_product_attribute, $attribute_combination))
$id_product_attribute, {
(float)$info['wholesale_price'], $product->updateAttribute(
(float)$info['price'], $id_product_attribute,
(float)$info['weight'], (float)$info['wholesale_price'],
0, (float)$info['price'],
(float)$info['ecotax'], (float)$info['weight'],
$id_image, 0,
strval($info['reference']), (float)$info['ecotax'],
strval($info['ean13']), $id_image,
(int)$info['default_on'], strval($info['reference']),
0, strval($info['ean13']),
strval($info['upc']), (int)$info['default_on'],
(int)$info['minimal_quantity'], 0,
0, strval($info['upc']),
null, (int)$info['minimal_quantity'],
$id_shop_list 0,
); null,
$id_shop_list
$id_product_attribute_update = true; );
$id_product_attribute_update = true;
}
} }
} }
} }
// if no attribute reference is specified, creates a new one
if (!$id_product_attribute)
{
$id_product_attribute = $product->addCombinationEntity(
(float)$info['wholesale_price'],
(float)$info['price'],
(float)$info['weight'],
0,
(float)$info['ecotax'],
(int)$info['quantity'],
$id_image,
strval($info['reference']),
0,
strval($info['ean13']),
(int)$info['default_on'],
0,
strval($info['upc']),
(int)$info['minimal_quantity'],
$id_shop_list
);
}
// fills our attributes array, in order to add the attributes to the product_attribute afterwards
if(isset($attributes[$group.'_'.$attribute]))
$attributes_to_add[] = (int)$attributes[$group.'_'.$attribute];
// after insertion, we clean attribute position and group attribute position
$obj = new Attribute();
$obj->cleanPositions((int)$id_attribute_group, false);
AttributeGroup::cleanPositions();
} }
// if no attribute reference is specified, creates a new one
if (!$id_product_attribute)
{
$id_product_attribute = $product->addCombinationEntity(
(float)$info['wholesale_price'],
(float)$info['price'],
(float)$info['weight'],
0,
(float)$info['ecotax'],
(int)$info['quantity'],
$id_image,
strval($info['reference']),
0,
strval($info['ean13']),
(int)$info['default_on'],
0,
strval($info['upc']),
(int)$info['minimal_quantity'],
$id_shop_list
);
}
// fills our attributes array, in order to add the attributes to the product_attribute afterwards
$attributes_to_add[] = (int)$attributes[$group.'_'.$attribute];
// after insertion, we clean attribute position and group attribute position
$obj = new Attribute();
$obj->cleanPositions((int)$id_attribute_group, false);
AttributeGroup::cleanPositions();
} }
}
$product->checkDefaultAttributes(); $product->checkDefaultAttributes();
if (!$product->cache_default_attribute) if (!$product->cache_default_attribute)
@@ -2188,10 +2203,10 @@ class AdminImportControllerCore extends AdminController
{ {
$this->errors[] = Db::getInstance()->getMsgError().' '.sprintf( $this->errors[] = Db::getInstance()->getMsgError().' '.sprintf(
Tools::displayError('%1$s (ID: %2$s) cannot be saved'), Tools::displayError('%1$s (ID: %2$s) cannot be saved'),
$info['name'], (isset($info['name']) ? Tools::safeOutput($info['name']) : 'No Name'),
(isset($info['id']) ? $info['id'] : 'null') (isset($info['id']) ? Tools::safeOutput($info['id']) : 'No ID')
); );
$this->errors[] = ($field_error !== true ? $field_error : '').($lang_field_error !== true ? $lang_field_error : ''). $this->errors[] = ($field_error !== true ? $field_error : '').(isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '').
Db::getInstance()->getMsgError(); Db::getInstance()->getMsgError();
} }
} }
@@ -2235,8 +2250,8 @@ class AdminImportControllerCore extends AdminController
if (!$res) if (!$res)
$this->errors[] = Db::getInstance()->getMsgError().' '.sprintf( $this->errors[] = Db::getInstance()->getMsgError().' '.sprintf(
Tools::displayError('%1$s (ID: %2$s) cannot be saved'), Tools::displayError('%1$s (ID: %2$s) cannot be saved'),
$info['name'], (isset($info['name']) ? Tools::safeOutput($info['name']) : 'No Name'),
(isset($info['id']) ? $info['id'] : 'null') (isset($info['id']) ? Tools::safeOutput($info['id']) : 'No ID')
); );
else else
{ {