Импорт и экспорт контента в Drupal 7





Импорт и экспорт нод в Drupal 7

Создавая интернет-магазины, иногда приходится предусматривать возможность импорта/экспорта продуктов из csv/xml файлов.

До недавнего времени мне доводилось работать больше с импортом продуктов из CSV. С этой задачей с легкостью справляется модуль Feeds. Иногда стандартного функционала модуля не хватало, поэтому ставился дополнительный модулек Feeds Tamper.

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

На скриншоте настройки импортера feeds видим 2 колонки: 1ая — заголовки CSV файла, 2ая — соответствующие им поля в ноде.

Все достаточно просто и безоблачно (было до недавнего времени).

На днях пришлось поломать голову, как сделать экспорт существующего контента в csv файл. Причем такой экспорт, что этот же файл, полученный в итоге, потом можно было бы импортировать через feeds без какого-либо шаманства. То есть и экспортируемый и импортируемый файлы должны иметь одинаковую структуру, одни заголовки.

Зачем это?





Сейчас поясню для чего нужны такие пляски. Представим, что у нас есть несколько идентичных интернет-магазинов по продаже Родины. Есть основной магазин и его копии (но с такой же структурой). Мы добавляем в основной магазин ручками новые товары. А потом, чтобы не повторять то же самое на копиях магазина, нам нужно экспортировать все продукты и импортировать их через feeds на копиях. Это один из примеров.

После долгих блужданий наткнулся на модуль Views Data Export. Этот модуль позволяет производить экспорт нод через Views. А гибкость Views в свою очередь позволяет нам создавать файл с любыми полями, заголовками.

Установив модуль создаем новое представление:
Импорт и экспорт нод в Drupal 7

Затем добавляем новый вид отображения (Data export):
Импорт и экспорт нод в Drupal 7

Затем прописываем URL для страницы экспорта и добавляем неоходимые нам поля. Также прилагаю скриншот настроек data export.

Вывод image field в виде ссылки на изображение

В процессе настройки столкнулся с еще одной проблемой: views не хотел выводить урлы картинок, которые я загружал через image field. Погуглив 5 минут нашел необходимый модуль Image URL Formatter, который добавляет новый форматтер для поля: url картинки.

Profit!





Комментарии

а где импорт??

Про импорт отдельно напишу в ближайшее время. Тут упор больше ставился на то, каким образом можно устроить связку импорт/экспорт.

Как же все-таки импортировать эти файлы обратно? Вот уже долгое время мучаюсь с feeds. В результате добилась только того, что он аккуратненько складывает импортируемые файлы в default/files/feeds, но на сайте я их не вижу. Подозреваю, что дело в Mapping for Node processor, но как установить это соответствие?

Если вы импортируете товары в commerce, то вам необходим модуль commerce_feeds, который добавляет еще один процессор Commerce Product Processor (вроде бы он так называется)

Пост по импорту нод через feeds напишу на днях, решено.

Я импортирую в Ubercart, и у меня установлен Ubercart Feeds. Но проблема в том, что не импортируются даже и простые ноды. Просто пишется Статус:No imported items.

посмотрите логи

"Пост по импорту нод через feeds напишу на днях, решено." похоже что еще не написали? Очень надо)

Ок, будет пост. На выходных скорее всего. Сейчас пишу большой пост на тему создания адаптивных html5 тем для друпала. Так то отвлекся.

А воз и ныне там....
Ждем импорт!

для импорта через feeds нужно отключать поле корзины из views после импортировать потом соответсвенно опять включать

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.