Jump to content

Создание категории при импорте товара


vonhamster

Recommended Posts

При импорте товаров из csv файла - не создается категория (в csv файле категория есть, и соответствующее поле помечено, но категория не импортируется).

 

Решил покопаться в коде, и обнаружил такую штуку (не могу не написать, у меня просто слов нет, чем руководствовались разработчики, когда это писали). Более того, если у вас тормозит импорт - это как раз одна из причин. Итак - файл controllers/admin/AdminImportController.php

 

protected static function split($field)
{
	if (empty($field))
		return array();

	$separator = Tools::getValue('multiple_value_separator');
	if (is_null($separator) || trim($separator) == '')
		$separator = ',';

	do $uniqid = uniqid(); while (file_exists(_PS_UPLOAD_DIR_.$uniqid));
	$tmp_file = file_put_contents(_PS_UPLOAD_DIR_.$uniqid, $field);
	$fd = fopen($temp, 'r');
	$tab = fgetcsv($fd, MAX_LINE_SIZE, $separator);
	fclose($fd);
	unlink($tmp_file);

	if (empty($tab) || (!is_array($tab)))
		return array();
	return $tab;
}

 

 

Вопрос: чем не устроила стандартная функция explode?

 

Решение (ну по данному коду ошибка в том, что пишется в _PS_UPLOAD_DIR_.$uniqid читается из некоего $temp). Я переписал для себя так:

 


protected static function split($field)
{
   if (empty($field))
       return array();

  $separator = Tools::getValue('multiple_value_separator');
  if (is_null($separator) || trim($separator) == '')
     $separator = ',';

  $tab = explode($separator, $field);

  if (empty($tab) || (!is_array($tab)))
     return array();
  return $tab;
}

Edited by vonhamster (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...