Создание и редактирование лент импорта (Feeds)

Создан 10.11.2024 6:07:59

Откорректированный тупой автоматический перевод по линейке модулей Feeds Drupal 8, якобы совместимых с Drupal 10. Редакция от 10.11.2024.

Далее:
Обзор
Создание типа ленты (Feed type)
Основные настройки
Сопоставление источников с целями
Mapping (сопоставление)
Выбор цели
Клонирование типа ленты
Создание ленты

Обзор

Создание нового импорта ленты в Drupal 8 выполняется в три этапа:

  • создают Feed type (тип ленты) (admin/structure/feeds), который описывает параметры импорта, такие как тип источника (например csv), частота (frequency) и т.д.
  • сопоставляют «источники» из структуры данных импорта с «целями» content/user/taxonomy/entity, в который вы импортируете (admin/structure/feeds/*/mapping).
  • создают Feed (ленту) требуемого типа (feed/add), выбирают источник (файл или URL) и импортируют актуальные данные.

Затем запускают импорт с самой Feed page (страницы ленты) (а не с отдельной страницы импорта, как в Drupal 7). Это означает, что создание Feed (ленты) в Drupal 8 во многом похоже на создание узлов (nodes) (т.е. сначала создается тип контента, а затем новый контент этого типа).

Создание типа ленты (Feed type)

На странице обзора Feed type (типов лент) (admin/structure/feeds) отображаются все типы лент, которые были созданы на данный момент. Если это новая установка, ее не будет. Чтобы создать новый Feed type, выбирают Add Feed type.

— Рисунок 1

Рисунок 1

В результате открывается страница создания Feed type (типа ленты), на которой имеется четыре варианта конфигурации:

Указанные параметры более подробно описаны ниже.

— Рисунок 2 — Страница создания нового типа ленты

Рисунок 2 — Страница создания нового типа ленты

Основные настройки

  • Name — название создаваемого Feed type (типа ленты);
  • Description — краткое описание функционала этого Feed type (тип ленты);
  • Import Period — период импорта — находится на дополнительных вкладках настроек — насколько часто должен выполняться импорт; для выполнения импорта вручную выбирают Off;

Далее:
Fetcher (поставщик)
Parser (анализатор)
Processor (процессор)

Fetcher (поставщик)

Fetcher (поставщик) — откуда импортируется (или «извлекается») контент. Выбирают из Directory, Download и Upload:

  • Directory — импорт содержимого из файла или серии файлов, уже имеющихся на веб–сайте (при создании ленты позже вводят каталог или путь к файлу);
  • Download — импорт содержимого по URL–адресу;
  • Upload — импорт содержимого из файла.

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

Далее:
Directory
Download
Upload

Directory

  • разрешенные расширения файлов (например csv, xml, txt и т.д.);
  • разрешенные схемы (общедоступные файлы, поиск по подкаталогам).

Download

  • автоматическое определение лент (если указанный URL–адрес является HTML-документом, он попытается извлечь ленту из него);
  • PubSubHubbub;
  • тайм-аут запроса.

Upload

  • разрешенные расширения файлов;
  • каталог загрузки (где будет храниться загружаемый файл).

Parser (анализатор)

Определяют формат ленты. Выбирают из OPML, CSV, Sitemap XML и RSS/Atom:

  • OPML — «Язык разметки Outline Processor»;
  • CSV — значения, разделенные запятыми;
  • карта сайта XML;
  • RSS/Atom.

Анализатор CSV имеет дополнительные настройки:

  • Delimiter — запятая, точка с запятой, табуляция и т.д.
  • No headers — проверяет, нет ли строки заголовка в импортируемом файле, затем во время сопоставления описывает исходные столбцы с номерами: 0, 1, 2 и т.д.

Processor (процессор)

Тип контента, который будет создаваться в ленте. Выбирают из Node, User и Term:

  • Node — следует выбрать необходимый тип контента;
  • User — создает пользователей;
  • Term — выбор словаря для добавления терминов.

Процессоры имеют аналогичные дополнительные настройки на вкладках:

  • Update existing content/user/terms — обновлять или ничего не делать, если лента будет содержать тот же элемент при следующем запуске; для этого необходимо указать уникальный идентификатор в сопоставлении;
  • Do not update — элементы в ленте с уникальными идентификаторами, которые уже существуют, будут проигнорированы;
  • Replace — выполняет то же самое, что и обновление, эта опция будет удалена в будущем;
  • Update — если они отличаются, существующие элементы с теми же уникальными идентификаторами, что и элементы в ленте, будут обновлены новыми данными полей из соответствующих элементов;
  • Previously imported items — что делать с ранее импортированными элементами, которых больше нет в ленте (например удалить, отменить публикацию и т.д.)
  • Expire contents/users/terms — как долго сохранять импортированные элементы перед их удалением (значение по умолчанию — «никогда», что означает, что элементы не будут удалены);
  • Owner — только для объектов, которые могут быть «принадлежащими», например Node: выбирают пользователя, который будет указан в качестве автора ноды или сущности.

Сопоставление источников с целями

После сохранения вверху только что созданной страницы будут отображены несколько новых основных вкладок Feed type.

— Рисунок 3 — Вновь созданный тип ленты

Рисунок 3 — Вновь созданный тип ленты

К ним относятся:

  • Mapping (сопоставление) — выбирают способ сопоставления данных из выбранной ленты с контентом, созданным при импорте;
  • Manage fields, Manage form display и Manage display — данные поля имитируют функциональность и назначение, которые они имеют для другого контента в Drupal 8. Их можно редактировать, чтобы изменить форму и отображение ленты, но они не являются необходимыми для функциональности импорта. Ознакомьтесь с документацией по содержанию для получения более подробной информации по этим разделам.

Mapping (сопоставление)

Следует отредактировать сопоставление типа ленты, прежде чем лента этого типа успешно импортирует контент. Выбранный при создании типа ленты анализатор повлияет на то, как будет работать сопоставление. Если выбран файл CSV, возможно определить «источники» на основе заголовков в CSV–файл и сопоставить их в целевой области типа контента (пользователя или термина). Если выбраны RSS/Atom, OPML или XML, будут сопоставлены предопределенные «источники» с целевыми полями.

Далее:
RSS/Atom
OPML
XML Sitemap
CSV

RSS/Atom

Predefined sources (предопределенные источники)Title (заголовок), Description (описание), дата публикации, Item GUID (идентификатор элемента), URL элемента (ссылка), широта элемента, долгота элемента, адрес электронной почты автора, имя автора, категории, контент, Feed URL (ссылка), описание ленты, Feed Image (изображение ленты), Feed description (заголовок ленты) и Enclosures (приложения).

OPML

Predefined sources (предопределенные источники) — Заголовок, URL, категории, URL сайта и лента: Заголовок файла OPML.

XML Sitemap

Предопределенные источники Item URL (ссылка), частота изменений, приоритет и дата последнего изменения.

CSV

Для анализатора CSV нет предопределенных источников. Их определяют на основе заголовков загружаемого файла. Если выбрано «Без заголовков» в настройках анализатора при создании типа ленты, источник для каждого целевого поля будет зависеть от порядка столбцов в файле (начиная с 0, 1, 2 и т.д.).

Пример 1 — CSV–файл с заголовками

Если CSV–файл выглядит следующим образом ...

id

title

author

pubdate

1

Гифки с кошками

Алекс Смит

2018–03–12

2

Еще несколько гифок с кошками

Джесси Тейлор

2018–03–20

3

Еще больше гифок с кошками

Алекс Смит

2018–04–02

... можно настроить сопоставление следующим образом:

  • id => Элемент ленты: Item GUID;
  • title => Заголовок;
  • author => Authored by (авторство);
  • pubdate => Authored on (дата опубликования).

ВАЖНО: имя заголовка чувствительно к регистру! Если имя сопоставления «product_name», то CSV–файл должен использовать «product_name» в качестве заголовка, а не «Product_name» или «PRODUCT_NAME»

Если CSV–файл выглядит следующим образом ...

1

Гифки с кошками

Алекс Смит

2018–03–12

2

Еще несколько гифок с кошками

Джесси Тейлор

2018–03–20

3

Еще больше гифок с кошками

Алекс Смит

2018–04–02

... можно настроить сопоставление следующим образом:

  • 0 => Элемент ленты: Item GUID;
  • 1 => Title (название);
  • 2 => Authored by;
  • 3 => Authored on.

Выбор цели

Чтобы начать сопоставление, следует выбрать цель из выпадающего меню.

— Рисунок 4 — Пустая страница сопоставления для ленты

Рисунок 4 — Пустая страница сопоставления для ленты

Все эти целевые объекты являются полями данных Drupal и извлекаются в зависимости от процессора, выбранного при создании типа ленты (например, пользовательский процессор извлекает такие поля, как имя и адрес электронной почты, в то время как процессор ноды извлекает все поля из выбранного типа контента). После выбора целевого объекта текст и параметры могут появиться в столбцах source (источник), summary (сводка), configure (настройка), unique (уникальный) и remove (удаление) для этой строки.

  • Source (источник): это данные, которые будут импортированы в выбранное поле;
  • Summary (сводка): содержит информацию о формате поля или о том, как будет работать ссылка (переменная для каждого поля);
  • Configure (настройка): позволяет изменить формат поля или способ работы ссылки (переменная для каждого поля);
  • Unique (уникальный): указывает, что данное поле следует использовать для определения уникальности элемента ленты (оно может быть сохранено в целевом значении Feeds item (элемент ленты), заголовке элемента или пользовательском поле целевого типа контента — однако допустимы только определенные типы пользовательских полей);

Примечание — Обязательно укажите уникальное поле, если вы хотите обновлять или игнорировать элементы при выполнении импорта или если вы планируете выполнять непрерывный импорт. Если вы этого не сделаете, вы можете создать множество дубликатов одних и тех же элементов.

  • Remove: при выборе этого параметра строка будет удалена.

— Рисунок 5 — Пример уникального поля boolean для сопоставленного атрибута

Рисунок 5 — Пример уникального поля boolean для сопоставленного атрибута

Далее:
Создание и удаление пользовательских источников
Использование пустых источников для Tamper Data

Создание и удаление пользовательских источников

Возможно выбрать существующий источник или добавить пользовательский источник. Вы можете создать новый пользовательский источник на вкладке Mapping (сопоставление). В окне выбора источника выбирают New [type] source, где [type] — это тип добавляемого источника.

— Рисунок 6

Рисунок 6

Все пользовательские источники отображаются на вкладке Custom Sources и могут быть отредактированы или удалены. Невозможно создать новый пользовательский исходный код на этой вкладке, используют вкладку Mapping, как описано выше.

— Рисунок 7

Рисунок 7

Использование пустых источников для Tamper Data

Пустой источник позволяет создать заполнитель для изменения входящих данных с помощью плагинов Tamper, используя модуль FeedsTamper.

Предположим, имеется столбец CSV SOURCE, который необходимо использовать для нескольких полей в Drupal. Вот как это можно сделать.

Далее:
Сопоставления
Tamper

Сопоставления

  • SOURCE —> Временная цель 1
  • Пустой источник 1 —> поле 1
  • Пустой источник 2 —> поле 2

Важен порядок сопоставлений.

Возможно добавить столько пустых исходных текстов *, сколько необходимо. Просто убедитесь, что он начинается с «Пустой исходный текст», и все будет в порядке.

Tamper

Сначала для каждого пустого источника x —> поля x используют плагин Copy source для копирования из SOURCE в поле x, или используют плагин Rewrite для использования токенов для заполнения поля.

Затем добавляют плагины для защиты от несанкционированного доступа по своему усмотрению.

Клонирование типа ленты

Для клонирования ленты можно использовать модуль https://www.drupal.org/project/entity clone.

Создание ленты

После сопоставления требуемых полей (можно вернуться и отредактировать тип ленты и сопоставление позже, если потребуется что–либо изменить), следует создать ленту (admin/content/feed). Как и на странице Feeds type, на странице Feed overview будут отображены все ранее созданные ленты.

— Рисунок 8 — Add feed на вкладке Feeds в разделе Content

Рисунок 8 — Add feed на вкладке Feeds в разделе Content

Для создания новой ленты нажимают Add feed.

— Рисунок 9 — Выбор ленты

Рисунок 9 — Выбор ленты

Если создано несколько типов лент, будет предложено выбрать, какой тип ленты использовать. Если создан только один тип ленты, произойдет переход непосредственно на страницу создания этой ленты.

— Рисунок 10 — Страница создания ленты

Рисунок 10 — Страница создания ленты

На странице создания ленты следует ввести заголовок ленты и либо URL–адрес (если тип ленты имеет средство загрузки), путь к каталогу/файлу сервера (Directory fetcher), либо загрузить файл (Upload fetcher). Если используется файл CSV Feed type, выбор по умолчанию вторичный анализатор параметров (разделитель и заголовки) также дисплей, так что возможно переопределить их. Возможно установить флажок, чтобы отключить ленту, что предотвратит запуск повторяющегося импортера (он все равно будет запускаться, если сделать это вручную). При активации ранее деактивированной ленты потребуется вручную запустить импорт, чтобы сбросить расписание импорта. Если на страницу Manage fields (не на страницу Mapping) добавлены какие–либо другие пользовательские поля, они будут отображаться и здесь.

После добавления этих полей возможно выбрать Save and import или просто Save. В любом случае состоится переход на страницу только что созданной ленты, где возможно вручную запустить импорт и (или) удалить элементы, созданные с помощью этой ленты.

— Рисунок 11 — Процесс создания новых объектов из ленты

Рисунок 11 — Процесс создания новых объектов из ленты

— Рисунок 12 — Импорт записи на странице объекта ленты

Рисунок 12 — Импорт записи на странице объекта ленты

Примечания

Скриншоты и некоторая документация по процессу импорта были повторно использованы в работе #2861994.