Feeds или быстрое создание материалов

Аватар пользователя ulogin_facebook_100003178678785
Автор: 
Александр Поляков

Если вам необходимо создать множество похожих материалов, например каталог, то на помощь придет полезный модуль Feeds.

Он позволяет загружать данные из файлов, rss лент и т.д. как с локальных файлов так и других сайтов и по ftp.

Для загрузки данных необходимо создать импортер состоящий из: сборщика, парсера и .

  • Сборщик (Fetcher)
    Этот компонент  определяет, откуда должны получаться данные. Это может быть загруженный файл, например в формате CSV или XML. А также можно выбрать »HTTP Сборщик» (HTTP Fetcher) и указать URL для удаленной загрузки данных.

    Сборщик может получать данные как при загрузке вручную, так и через определенные периоды времени, по умолчанию - каждые 30 минут.

  • Парсер (Parser)
    После того как информация получена, парсер разбивает ее на логические блоки.

  • Процессор (Processor)
    Процессор записывает данные в Drupal - по умолчанию может записывать в ноды, термины таксономии, пользователей, но количество процессоров можно увеличивать плагинами. Например, если необходимо записать данные о товаре в commerce, то поможет http://drupal.org/project/commerce_feeds

 

Ладно, хватит теории - переходим к практике.

 

ТЗ: Необходимо создать импортер товаров каталога столов. Каждый стол имеет характеристики: название, описание, цена, изображение. Исходные данные имеют формат таблицы xls, а изображения товара находятся в папке.

Таблица имеет вид:

Название

Описание

Цена

Изображение

Стол1

Описание стола 1

5000

http://example.com/sites/default/files/styles/medium/public/table/table1...

Стол2

Описание стола 2

5000

http://example.com/sites/default/files/styles/medium/public/table/table2...

Изображения имеют форматы table1.jpg, table2.jpg итд.

 

Подготовительный этап:

  1. Создаем ноду для товаров. Структура → типы материалов → добавить тип материала. Называем его tables. К уже имеющимся полям title и body необходимо добавить еще price - Целое число и table_image — Изображение.
    Получаем что-то типа того:

  2. Удаляем строку с заголовками из таблицы (для того, чтобы не возникало разночтений заголовков таблицы) и сохраняем в формате CSV с разделителем запятая (,).

  3. Копируем папку с изображениями на сайт в папку /sites/default/files/table/

  4. Скачиваем и включаем модуль Feeds и Feeds Admin UI

Создание импортера:

  1. Структура → Feeds Importers → Add importer

  2. Называем импотер tables

  3. В базовых настройках отключаем Периодический импорт

  4. Сборщик выбираем File upload

  5. Обработчик ставим CSV parser

  6. Настройки для CSV parser ставим галочку без заголовков.

  7. Processor оставляем Node processor.

  8. Настройки для Node processor
    Update existing Материалы Update existing nodes (slower than replacing them)
    Тип материала tables

  9. Ну и самое важное и интересное
    Соответствия для Node processor

ИСТОЧНИК

ЦЕЛЬ

TARGET CONFIGURATION

0

Заголовок

Used as unique.

1

Body

 

2

price

 

3

table_image

 

Импортирование:

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

На этом все. Если что-то непонятно - оставляйте комментарии. 

 

*VISA/MasterCard
Тэги: