Импорт и экспорт из CSV

Важно: При обмене данными можно выбрать одну из кодировок Windows-1251 или UTF-8.

Выбор кодировки

Импорт

В начале рассмотрим импорт страниц. Формат импортируемого CSV файла должен быть следующим:
1 строка — идентификатор поля;
2 строка — название поля;
3 строка — тип поля;
4 и далее — значения.

Все поля должны быть заключены в двойные кавычки ("), а в качестве разделителя следует использовать точку с запятой (;). Пример:


"id";"name";"type-id";"is-active";"template-id";"opisanie";"price"
"id";"Наименование";"Идентификатор типа";"Активность";"Шаблон страницы";"Описание";"Цена"
"native";"native";"native";"native";"native";"text";"price"
"1";"Гарри Поттер";"113";"1";"1";"Классная книга про Гарри Поттера";"400"
"2";"Властелин Колец";"113";"1";"1";"не менее классная книга про хоббитов";"1500"
"3";"Приключения Петрова и Васечкина";"113";"1";"1";"Приключения двух друзей";"800"

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

В поле type-id указывается существующий в системе идентификатор типа данных импортируемой страницы. В случае, если данное поле отсутствует или значение в нем не указано, то автоматически будут созданы страницы типа «Страница контента». Если при импорте указывается раздел сайта, в который импортируются данные, то будет установлен доминантный для этого раздела тип (тип данных, которому принадлежит больше всего страниц в разделе).

Поле is-active отвечает за активность импортируемой страницы. По умолчанию страницы создаются неактивными.

В поле template-id можно указать существующий в системе идентификатор шаблона. Если он не указан, то страницам устанавливается шаблон по умолчанию.

В поле parent-id можно указать идентификатор родительской страницы, это позволит сохранить структуру импортируемых страниц. При не заданном идентификаторе страницы импортируются в раздел, указанный для импорта, либо в корень сайта, если раздел не указан.

Поле is-visible отвечает за то, будет ли видна страница в меню. Если значение не задано, то по умолчанию страница в меню не отображается.

В поле is-deleted можно указать удалена страница или нет. Если данный параметр равен "1", то страница помечается как удалённая и помещается в корзину.

 

Возможно указать следующие типы полей:

native - Название товара, ID товара
string - Текстовая строка
text - Текстовое поле
wysiwyg - HTML-текст
int - Число
float - Число с точкой
boolean - Кнопка-флажок
price - Цена
tags - Теги
relation - Список
multiple-relation - Список со множественным выбором
file - Файл
img_file - Изображение
video_file - Видеоролик
swf_file - Флеш-ролик

 

В версии 2.8.4.2 появилась возможность экспортировать и импортировать поля типа "Список", "Список со множественным выбором" и "Теги". В файле CSV, это будут типы "relation", "multiple-relation" и "tags" соответственно.

Важно: Следует обратить внимание, что экспорт/импорт полей типа "Составное", "Ссылка на дерево" и "Множественное изображение" не производится.

 

Значения для полей типа "Список с множественным выбором" и "Теги" в CSV файле указываются через запятую, например:


"id";"name";"type-id";"is_active";"template_id";"opisanie";"price";"tags";"avards"
"id";"Наименование";"Идентификатор типа";"Активность";"Идентификатор шаблона";"Описание";"Цена";"Теги";"Премии"
"native";"native";"native";"native";"native";"text";"price";"tags";"multiple-relation"
"1";"Гарри Поттер";"113";"1";"1";"Классная книга про Гарри Поттера";"400";"Хоббиты,Гоблины,Гарри Поттер";"Prometheus Award,Лунная радуга"
"2";"Властелин Колец";"113";"1";"1";"не менее классная книга про хоббитов";"1500;"Гоблины,Орки,Хоббиты";"Аэлита,Локус"
"3";"Приключения Петрова и Васечкина";"113";"1";"1";"Приключения двух друзей";"800";"Петров,Васечкин";"Рваная грелка"

При импорте данных в формате CSV создается новый идентификатор пространства имен, равный имени импортируемого файла, если такового нет в системе, а также устанавливается связь между id страниц в файле и id страниц в системе. Таким образом, если соответсвтие было найдено, страница обновляется, а если нет - создается новая.

В случае, когда при импорте у типа объекта отсутствуют указанные в CSV-файле поля, они будут созданы автоматически.

Экспорт

При экспорте данных в формате CSV идентификатор пространства имен составляется из id сценария экспорта и расширения файла с результатом экспорта (в данном случае - "csv"), например - "1545.csv". Этот идентификатор становится именем файла с результатами экспорта. Во время экспорта в рамках данного пространства имен в системе устанавливается связь между id страниц в системе и id страниц в итоговом файле. Если вы хотите изменить свойства этих страниц в системе при помощи последующего импорта, то необходимо при импорте сохранить имя файла, так как иначе изменится и идентификатор пространства имен. При ненахождении соответвия id страницы в файле и id страницы в системе будет создана новая страница.

Во время экспорта свойства parent-id, type-id, template-id и is-active будут заполнены автоматически.