Страница 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
Ага, кавычка действительно лишняя. Исправил.