Импорт контента через feeds





Импорт нод через feeds

После публикации статьи об импорте/экспорте контента в друпале было много просьб рассказать подробнее про импорт через feeds. Игнорировать их не мог, поэтому все же написал более-менее подробный пост с картинками и блекджеком.

В данном посте я рассмотрел банальный импорт из csv файла контента с 4 полями: заголовок статьи, содержимое статьи, изображение и теги.

Для работы нам понадобятся 2 модуля: feeds & feeds tamper.

Предположим, у нас есть какой-то тип контента со следующими полями:
Импорт контента через feeds

Чтобы настроить импорт для него нам необходимо:

  • скачать и установить вышеуказанные модули;
  • перейти на страницу admin/structure/feeds и создать новый импортер;
  • обозвать его как-нибудь;
  • страница настроек импортера — скриншот;
  • basic settings
    Импорт контента через feeds
    Рекомендую выключать periodic import & process in background.
  • Select a fetcher — выбираем способ загрузки файла импорта (с компьютера или по урлу с удаленного сервера)
  • Select a parser — выбираем формат файла (в моем случае csv)
  • Settings for csv parser — скриншот
  • Select a processor — выбираем что будем импортировать (в моем случае Node processor)
  • Node Processor Settings
    Импорт контента через feeds
  • Mapping for node processor — добавляем импортируемые поля. В столбце Source указываем заголовки полей в нашем csv файле. В столбце Target — соответствующие им поля в нодах. Заголовок я сделал уникальным.

По сути это все настройки. Но! Почти всегда нужно импортировать в одно поле несколько значений (например, несколько картинок или тегов). Feeds из коробки этого не умеет. Поэтому нам и нужен был модуль feeds_tamper, который позволяет производить некоторые операции над импортируемым контентом. В частности, объединение нескольких значений в массив.

У меня в примере поле Tags имеет множественный выбор из словаря таксономии. Поэтому после сохранения импортера, мы возвращаемся на главную страницу списка импортеров admin/structure/feeds и выбираем в нашем импортере пункт Tamper.

Выбираем интересующее нас поле (в моем случае tags) и добавляем плагин:
Импорт контента через feeds

Сохраняем. Теперь все готово, чтобы начать импорт. Переходим /import, выбираем нужный нам импортер:
Импорт контента через feeds
Импорт контента через feeds
Импорт контента через feeds

И да, вот мой файл импорта с 3-мя нодами — import.csv.

Постскриптум

Вообще тут ничего особо сложного нет. Если у вас есть необходимость импортировать продукты в Commerce, то необходимо будет установить дополнительно модуль Commerce Feeds и создавать отдельно 2 импортера: один для продукта, второй для дисплея. В том, что для продукта в настройках Select a processor выбирается commerce processor и указываются поля продукта. Вот отличный подробный скринкаст:





Комментарии

приветствую...
а как с Вами связаться можно? спасибо

Как запустить импорт?
После создания импортера, захожу site.com/import, выбираю файл csv и все, ничего не происходит, импорта нет. В чем может быть причина?

Тут на картинке внизу формы есть кнопка "Начать импорт". После клика стартует batch и начинается импорт нод из файла.

Я не вижу тут на картинке кнопки "Начать импорт"

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

Да, придется немного пропатчить

Здравствуйте!
А как сделать, чтобы на странице периодически обновлялся текст, при этом не надо создания нод. А то описываемые модули создают новые страницы, а мне нужно просто обновление одной?

Если вам нужно изменять только одну ноду при импорте, то нужно в настройках выбрать "update existing nodes" и в mappings выбрать поле заголовка, например, как уникальное (в том случае, конечно, если оно не изменяется).

К сожалению с пропатчиванием не получается, оно все дублирующие товары заливает так как первый раз. Тоже не могу присвоить артикулу(id) уникальность...Пробовал ещё ставить модуль Feeds Tamper и там принудительно установить уникальный id и всё мимо:(
TurboPxl, есть какие-нибудь идеи?

Подскажите. в тампере использую Explode + Rewrite или Explode + Add Prefix. И при импорте , происходит странная вещь - файл изображения добавляются только один, тот что по списку первый идёт, а потом он дублируется столько раз, сколько фото было в списке. Следующие по списку фото игнорируются. В чем причина? спасибо. если прописывать полный путь без префиксов все гуд.

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

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
Drupal
11
04 '13 — 13:43:40