Страница 1 из 1
Отключение разделения запятой при импорте
Добавлено: 24.08.2016, 20:07
Александр Б
Здравствуйте, столкнулся с проблемой при импорте изображений товаров, так как в URL путей изображений есть запятые, которые служат разделителем для нескольких фотографий. В моем случае у всех товаров только 1 фото, подскажите пожалуйста какой файл и в каком месте подправить чтобы импорт обрабатывал запятые как часть пути к фото, а не разделитель.
Добавлено: 24.08.2016, 20:16
Vitaly
\backend\ajax\index.php
Есть такие строки:
Код: Выделить всё
private $import_files_dir = 'backend/files/import/'; // Временная папка
private $import_file = 'import.csv'; // Временный файл
private $category_delimiter = ',,'; // Разделитель каегорий в файле
private $subcategory_delimiter = '/'; // Разделитель подкаегорий в файле
private $column_delimiter = ';';
private $products_count = 10;
private $columns = array();
Можете попробоать сменить разделители
Добавлено: 24.08.2016, 20:48
Александр Б
Да нет, это разделители столбцов. Скорее всего подправить нужно здесь (в том же файле), только вырезка не помогает:
Код: Выделить всё
// Изображения товаров
if(isset($item['images'])) {
// Изображений может быть несколько, через запятую
$images = explode(',', $item['images']);
foreach($images as $image) {
$image = trim($image);
if(!empty($image)) {
// Имя файла
$image_filename = pathinfo($image, PATHINFO_BASENAME);
// Добавляем изображение только если такого еще нет в этом товаре
$this->db->query('SELECT filename FROM __images WHERE product_id=? AND (filename=? OR filename=?) LIMIT 1', $product_id, $image_filename, $image);
if(!$this->db->result('filename')) {
$this->products->add_image($product_id, $image);
}
}
}
}
Кстати в комментах две опечатки подряд
Добавлено: 24.08.2016, 21:09
Vitaly
Вы бы дали пример проблемной ссылки на изображение, а лучше всю строку из CSV, может оно бы легче было. А то в очередной раз телепатов будем искать.
Добавлено: 25.08.2016, 09:12
korshunov
Попробуйте вместо
$images = explode(',', $item['images']);
вставить
$images = array('$item['images']);
Добавлено: 25.08.2016, 15:07
Александр Б
korshunov писал(а):Попробуйте вместо
$images = explode(',', $item['images']);
вставить
$images = array('$item['images']);
Выдал ошибку.
Истина где-то рядом )) Кстати файл не тот же, а \backend\ajax\import.php
Вот пример проблемного изображения:
http://xn----7sbbagv9a0aajf4ag2p.xn--p1ai/compone ... alnoy zhidkosti 2,5ml 1sht.jpgДобавлено спустя 8 минут 44 секунды:Кажись заработало, убрал лишнюю кавычку после скобки перед $item
$images = array($item['images']);
Спасибо, korshunov!
Добавлено: 25.08.2016, 16:07
korshunov
Ага, кавычка действительно лишняя. Исправил.