Функционал импорта и экспорта в csv для какого-либо модуля

Материал из Umicms
Перейти к:навигация, поиск

Актуально для версии 19.

В данной статье будет описана функциональная возможность экспорта и импорта данных в csv формат, это возможно практически в каждом модуле. Различные моменты рассмотрим на примере модуля "Каталог".

Зайдя в модуль "Каталог" и вызвав контекстное меню какого-либо раздела, можно выбрать действие "Экспорт списка в CSV". Сохранив файл экспорта и открыв его в каком-либо текстовом редакторе, допустим Notepad++, мы увидим примерно следующее содержание файла:

"id";"name";"type-id";"is-active";"template-id";"parent-id";"price";"photo"
"id";"Наименование";"Идентификатор типа";"Активность";"Идентификатор шаблона";"id родительской страницы";"Цена";"Фотография"
"native";"native";"native";"native";"native";"native";"price";"img_file"
"51";"Хомячок пушистый";"134";"1";"4";"2";"159";"./images/cms/data/hamster_angor.jpg"
"52";"Хомячок обычный";"134";"1";"4";"2";"99";"./images/cms/data/hamster_4.jpg"
"45";"Хомячок на колесах";"134";"1";"4";"2";"1999";"./images/cms/data/hamster_integr.jpg"
"53";"Хомяк";"134";"1";"4";"2";"220";"./images/cms/data/hamster_5.jpg"
"46";"Хомячок с улыбкой";"134";"1";"4";"2";"546";"./images/cms/data/hamster_1.jpg"
"1";"Хомячок необыкновенный";"134";"1";"4";"2";"3450";"./images/cms/data/hamster_koleso_usb.jpg"
"47";"Хомяк офигенный";"134";"1";"4";"2";"2998";"./images/cms/data/hamster_2.jpg"
"54";"Хомячок прекрасный";"134";"1";"4";"2";"1356";"./images/cms/data/hamster_vegetar.jpg"
"48";"Тестовый хомяк";"134";"1";"4";"2";"0";"./images/cms/data/hamster_5.jpg"


Поля, которые экспортируются всегда это: "Id", "Название", "Идентификатор типа", "Псевдостатический адрес", "Активен".

Остальные значения полей попадут в экспорт только в том случае, если их значения отображаются при табличном просмотре списка объектов каталога. Эти поля можно активировать по кнопке, которая находится справа от столбца "Название". Данная кнопка открывает список полей, только тех полей, которые есть в родительском типе данных, в данном случае это тип "Объект каталога". Если был создан дочерний тип по отношению к типу "Объект каталога", и у нового типа "Ноутбук" было добавлено поле "Процессор", то это поле не получится добавить в экспорт. Как обойти данное ограничение рассказано в данной статье: Экспорт определенных полей в csv файл

Вернемся к нашему файлу, который был получен при экспорте данных. Первый столбец Id – это page_id страниц, которые мы экспортировали. Файл с данными можно открыть в более привычном редакторе, допустим OpenOffice, отредактировать некоторые значения полей, а потом произвести импорт данных в тот же раздел. Система найдет страницы по указанным id и перезапишет значения указанные в файле импорта, т.е. произойдет обновление данных. Если вам необходимо создать новые объекты, то id страниц в файле импорта необходимо удалить, сам столбец Id должен присутствовать.


ВАЖНО:

Excel не корректно обрабатывает csv-файл, текстовые поля не заключаются в двойные кавычки, без данного условия очень велика вероятность того, что импорт пройдет не корректно.
Для корректной обработки изображений в начале пути обязательно должна стоять точка ./images/cms/data/hamster_angor.jpg


При импорте новых объектов в пустой раздел, они будут созданы с родительским типом данных, в нашем случае это "Объект каталога". Чтобы объекты каталога были созданы не по основному типу данных, необходимо в разделе каталога создать, хотя бы временно, один объект с нужным типом данных, допустим "Ноутбук", тогда при импорте новых данных, объекты каталога будут созданы уже с типом данных "Ноутбук".

В файле для импорта, в первой строке указываются название полей на кириллице, допустим: Яркость, Цвет, Вес; все последующие строки это уже сами значения для каждого объекта.