Сегодня затронем довольно простую, но почему-то вызывающую трудности задачу, а именно будем выгружать данные из XML файла в сущность Drupal, в данном примере будем использовать в качестве сущности ноду. Для работы нам понадобится тестовый xml файл, я же вам предлагаю свой, который будет использоваться в примере. Скачать его можно здесь, а так же модуль Feeds , который будет организовывать импорт из файла в сущность, а так же модуль feeds_xpathparser, который расширяет стандартные возможности feeds и позволяет производить импорт из XML формата.
После активации данных модулей, приступаем к созданию нового «импорта», переходим по пути «Структура -> Импортеры» и жмем «Добавить импортер»
Вводим любое имя, я назову его как XMLparser
И жмем «Создать». Дальше перед нами открывается страница с настройками нового «Импорта». Переходим в базовые настройки, здесь уберем периодичность импорта, остальные настройки оставим по умолчанию.
Не забываем нажать «Сохранить». Далее идем в настройки фетчера (сборщика), здесь нам нужно определить, каким образом мы будем доставлять файл для импорта, это может быть как:
- Через форму загрузки файла при импорте
- Забирать файл с указанного URL
Нам в данном случае подходит первый вариант
Отмечаем и опять же жмем «Сохранить». В пункте «Загрузка файла», в качестве разрешенных к загрузке форматов файлов оставим только XML, а остальные настройки оставим по умолчанию
Жмем «Сохранить». Теперь нам необходимо выбрать парсер, который сможет распарсить наш файл XML, кликаем по следующему пункту, который так и называется «Парсер» и в качестве парсера выбираем «XPath XML parser», данный парсер был предоставлен модулем feeds_xpathparser
Дальше настройки XPath XML parser оставляем по умолчанию. Переходим к «Процессору», в данном разделе нам необходимо выбрать сущность, куда будем импортировать данные из файла XML, в нашем случае это нода, поэтому выбираем «Node processor»
Далее переходим к настройке «процессора», где нам обязательно нужно выбрать тот тип материала, в который мы будем импортировать данные, в нашем случае – это «Article»
Остальные настройки оставляем по умолчанию. Теперь осталось дело за малым, а именно определить поля для импорта, как вы могли заметить, наш файл имеет три поля:
- Title – соответствует заголовку
- Description – соответствует описанию
- Image – соответствует изображению
Поэтому, добавляем наши поля в импортер
Сохраняем и на этом с основными настройками закончили. Теперь осталось проверить, как это у нас все работает, для этого переходим по URL
http://sitename/import
Выбираем наш созданный импорт и выбираем файл XML для импорта. Теперь нам лишь осталось расставить соответствие полей типа материала к нашему файлу, у меня они выглядят так:
И жмем «Импорт».
Можете самостоятельно проверить на существование контента.
Хочу заметить, что файл изображения, который указан в XML файле должен быть предварительно загружен на ваш сервер, в моем случае он находится по пути sites/defaults/files/test.jpg, в вашем же случае он может быть любым.
На этом думаю можно закончить.
Комментарии (3)
Как можно категории загрузить? И потом выставить соответствие категориям сайта? А не каждый товар по категориям разносить?
Полезная статья! Спасибо!
Помогите разобраться, как загружать изображения с другого сайта, при такой структуре xml файла
А какой виджет на поле изображения должен быть? У меня с Drag & Drop Upload не получается. И возможна ли мультизагрузка изображений таким способом?