Импорт сложного поля

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #1 korshunov » 13.10.2021, 18:12

В модуле создаю возможность добавлять к товару несколько файлов для скачивания. Все получается, в том числе экспорт списка файлов в новой колонке. Трудность с импортом этой колонки. Не могу сообразить, какую функцию для этого расширять.
Если расширять BackendImportHelper::importItem, то в расширение не передается полный набор полей из файла импорта. Других кандидатов не вижу.
Надо, чтобы в экстендере срабатывал аналог BackendImportHelper::importImages.
Может, кто подскажет, как действовать.

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 216
Сообщения: 1627
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Сайт Skype

Сообщение #2 OkayCMS » 19.10.2021, 10:02

В BackendImportHelper можно расширять метод parseProductData если файл нужно добавлять к товару или parseVariantData если файл нужно добавлять к варианту

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #3 korshunov » 20.10.2021, 06:37

Не годится так.

Метод parseProductData принимает параметром только массив данных из одной строки из файла. А для сохранения нужных данных надо знать ID товара, к которому относятся файлы. В момент вызова parseProductData или экстендера для нее этот ID в принципе неизвестен.

К примеру, для аналогичного действия с сохранением привязки изображений к товару функция BackendImportHelper::importImages вызывается позже, после создания/обновления записи таблицы products, когда ID товара известен.


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 30 гостей