Ответить Новая тема Новый опрос 
 импорт csv в 1.4.11 - затирается картинка
lightman
Cпециалист
Сообщений: 142
Регистрация: 16-03-2011


03-08-2017 12:50
Подскажите как можно решить задачу (и решается ли она вообще) ???

Столкнулся с тем, что в стандартном импорте через csv в админке 1.4.11 затираются картинки уже у существующего товара.
То есть мне нужно чтобы к существующей картинке была добавлена новая картинка и старая картинка не была затерта и удалена с сервера, но как я не пробовал - этого сделать не получается.
А вот в 1.6 версии - без вопросов - он по умолчанию не затирает картинку, а если нужно затереть то выставляешь в соответствующем столбце в csv файле (затереть картинку и ли нет 1 / 0) и все работает.
Кто сталкивался с подобным и как решал?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


04-08-2017 15:35
Цитата:( lightman @ 03-08-2017 13:50 Смотреть сообщение )
Столкнулся с тем, что в стандартном импорте через csv в админке 1.4.11 затираются картинки уже у существующего товара.
То есть мне нужно чтобы к существующей картинке была добавлена новая картинка и старая картинка не была затерта и удалена с сервера, но как я не пробовал - этого сделать не получается.

Откройте файл /адм.дир/tabs/AdminImport.php и замените:
Код:
if ((isset($product->delete_existing_images) && (bool)$product->delete_existing_images) || (isset($product->image) && is_array($product->image) && count($product->image)))
    $product->deleteImages();

на:
Код:
if (isset($product->delete_existing_images))
    if ((bool)$product->delete_existing_images)
        $product->deleteImages();

В csv-файл необходимо добавить ячейку с значением "0" для поля "Удалить существующие изображения (0 = нет, 1 = да)"


Если в ИМ удалять изображение при импорте нет необходимости:
в файле /адм.дир/tabs/AdminImport.php удалите:
Код:
if ((isset($product->delete_existing_images) && (bool)$product->delete_existing_images) || (isset($product->image) && is_array($product->image) && count($product->image)))
    $product->deleteImages();
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
lightman
Cпециалист
Сообщений: 142
Регистрация: 16-03-2011


05-08-2017 17:41
Цитата:( Алекс @ 04-08-2017 11:35 Смотреть сообщение )
Цитата:( lightman @ 03-08-2017 13:50 Смотреть сообщение )
Столкнулся с тем, что в стандартном импорте через csv в админке 1.4.11 затираются картинки уже у существующего товара.
То есть мне нужно чтобы к существующей картинке была добавлена новая картинка и старая картинка не была затерта и удалена с сервера, но как я не пробовал - этого сделать не получается.
Откройте файл /адм.дир/tabs/AdminImport.php и замените:
Код:
if ((isset($product->delete_existing_images) && (bool)$product->delete_existing_images) || (isset($product->image) && is_array($product->image) && count($product->image)))
    $product->deleteImages();

на:
Код:
if (isset($product->delete_existing_images))
    if ((bool)$product->delete_existing_images)
        $product->deleteImages();

В csv-файл необходимо добавить ячейку с значением "0" для поля "Удалить существующие изображения (0 = нет, 1 = да)"


Если в ИМ удалять изображение при импорте нет необходимости:
в файле /адм.дир/tabs/AdminImport.php удалите:
Код:
if ((isset($product->delete_existing_images) && (bool)$product->delete_existing_images) || (isset($product->image) && is_array($product->image) && count($product->image)))
    $product->deleteImages();

Алекс - Огромное спасибо за участие в решении данной задачи!

То есть если я правильно Вас понял, то если я заменю код на Ваш:
if (isset($product->delete_existing_images))
if ((bool)$product->delete_existing_images)
$product->deleteImages();

То при добавлении в csv-файл столбца со значением в ячейки либо "0" либо "1" для поля "Удалить существующие изображения (0 = нет, 1 = да)"
У меня будет либо добавляться к существующей картинке и оставляя старую - либо удаляться старая картинка и обновляться на новую - верно???

А если не делать данный столбец то по умолчанию как я понял сработает везде "0" и картинка перезапишется (затрется) - верно?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
lightman
Cпециалист
Сообщений: 142
Регистрация: 16-03-2011


09-08-2017 13:40
Странно, но по какой то причине предложенный метод заработал на чистовой версии, а на действующем ИМ - работать отказалось - то есть так же затирает картинки
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


09-08-2017 16:48
Цитата:( lightman @ 05-08-2017 18:41 Смотреть сообщение )
А если не делать данный столбец то по умолчанию как я понял сработает везде "0" и картинка перезапишется (затрется) - верно?

Изображения будут удалены только при наличии 1 в поле "delete_existing_images".

Цитата:( lightman @ 09-08-2017 14:40 Смотреть сообщение )
Странно, но по какой то причине предложенный метод заработал на чистовой версии, а на действующем ИМ - работать отказалось - то есть так же затирает картинки

Возможно используются переопределения, проверьте директорию /override/controllers/, возможно используются доп. функционал (модуль и тп. доработка) затирающая изображения, возможно правки не были внесены (проверьте наличие нового кода).
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
lightman
Cпециалист
Сообщений: 142
Регистрация: 16-03-2011


09-08-2017 21:31
ОГРОМНЕЙШЕЕ СПАСИБО!!!!!!!

Все получилось!
А я то думал, что это вообще не решаемая задача - оказывается она была решаема - а я столько лет мучился то с этим - заливая картинки заново когда нужно было просто добавить еще одну :)))
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос