Jak zaimportować zewnętrzne kanały do swojej witryny Drupal 9 za pomocą modułu kanałów?
Opublikowany: 2020-11-03Jako programista natkniesz się na kilka sytuacji, w których musisz zaimportować dane ze źródeł zewnętrznych. Czasami będziesz musiał zaimportować dane z więcej niż jednego źródła do swojej witryny Drupal 9. Moduł Feeds w Drupalu to prosty, bezproblemowy moduł, który umożliwia nawet użytkownikom nietechnicznym importowanie treści z różnych źródeł danych. Tym, co czyni go prostszym niż inne moduły Drupala, takie jak moduł Migrate, jest to, że cały proces importu odbywa się za pośrednictwem interfejsu użytkownika Drupala. Dostarcza treści tak, jak chcesz, gdy tylko są dostępne.
Wiele stron internetowych importuje kanały RSS / XML z witryn stron trzecich. W tym blogu otrzymamy kanał informacyjny zaimportowany za pośrednictwem zewnętrznego interfejsu API, który dostarcza dane w formacie json za pomocą modułu Feeds w Drupal 9.

Instalowanie modułu kanałów Drupal
Moduł Feeds dla Drupala 9 umożliwia importowanie danych z różnych formatów, takich jak CSV, XML, JSON, RSS itp. do węzłów, użytkowników i terminów taksonomicznych za pośrednictwem interfejsu użytkownika.
1. Zainstaluj moduł Drupal Feeds (tu będziemy używać kompozytora)
composer require 'drupal/feeds:^[email protected]'composer require 'drupal/feeds:^[email protected]'
2. Tutaj używamy kanałów JSON do importowania danych. Potrzebujemy więc parsera JSON, który będzie wymagał od nas zainstalowania jeszcze jednego modułu, jakim jest rozszerzalny parser Feeds. Najlepszym sposobem na zainstalowanie tego modułu jest użycie kompozytora, ponieważ pobiera on wszystkie wymagane biblioteki. (Możesz również pominąć pierwszy krok, jeśli pobierasz za pomocą kompozytora, ponieważ moduł kanałów Drupal będzie zależnością od modułu feed_ex ).
composer require 'drupal/feeds_ex:^[email protected]'composer require 'drupal/feeds_ex:^[email protected]'
Uwaga: Jeśli nie używasz kompozytora do instalacji, biblioteki wymagane przez ten moduł można również zainstalować z modułem Ludwig. Zainstaluj moduł Ludwig, a następnie przejdź do /admin/reports/packages, aby uzyskać dalsze instrukcje.
3. Włącz moduł feeds i feeds_ex (Feeds Extensible Parsers) za pomocą drush lub przez interfejs użytkownika.

Konfiguracja i implementacja modułu kanałów
Tutaj zaimportujemy dane z artykułów na stronie https://newsapi.org/ (Tematy związane z „ Najważniejszymi nagłówkami z TechCrunch teraz ”), które są widoczne w formacie JSON pokazanym na poniższym zrzucie ekranu.
Aby uzyskać te informacje o nowościach, musimy zalogować się do serwisu i uzyskać klucz API. Następnie wybierz tematy, dla których chcesz zaimportować dane do swojej witryny.

Patrząc na API, stwórzmy typ zawartości, do którego nasze dane muszą zostać zaimportowane.
Tworzenie typu zawartości
Tutaj utworzyłem nowy typ treści o nazwie „ Wiadomości ”. Wybierz typ pola zgodnie z Twoim JSON, dla którego dane mają być migrowane.

Na powyższym zrzucie ekranu wybraliśmy proste pola do importowania danych, takie jak Author, które jest polem Text(plain) do importowania danych od autora klucza JSON .

Jak widać na powyższym zrzucie ekranu, dodaliśmy pole elementu Kanały typu Kanał i odpowiednio wybraliśmy typ kanału. W następnej sekcji poniżej dowiemy się, jak utworzyć typ kanału.
Tworzenie typu paszy
Wykonaj poniższe czynności, aby utworzyć typ pliku danych.
- Przejdź do strony przeglądu kanałów ( /admin/structure/feeds ). Możesz zobaczyć wszystkie kanały Drupal wymienione na tej stronie.
Utworzyłem już 2 kanały. Tutaj będę korzystał z kanałów informacyjnych . Możesz stworzyć własny typ kanału, klikając Dodaj typ kanału. - Podczas edycji typu kanału lub dodawania nowego typu kanału zobaczymy poniższe opcje.
- Podstawowe ustawienia
Skonfigurujmy ustawienia podstawowe dla typu pliku danych. Najpierw podaj nazwę, opis i wyjaśnienie lub wskazówki dotyczące przesyłania dla typu pliku danych.
Okres importu (pokazany w poniższej zakładce ustawień) pomaga wybrać, jak często ma być uruchamiany import. Zostanie to zrobione poprzez zadanie crona. W przypadku wybrania opcji Off import zostanie wykonany ręcznie.

- Opcja Ustawienia modułu pobierania pokazuje, skąd importujesz zawartość lub skąd ją pobierasz.
Zapewnia 3 opcje do wyboru,
- Katalog :- Importuj zawartość z pliku lub serii plików znajdujących się już w Twojej witrynie.
- Pobierz z adresu URL :- Zaimportuj treść z adresu URL (który będziemy wybierać w naszym przypadku).
- Prześlij plik: - Importuj zawartość z pliku.
Na podstawie wybranego modułu pobierania będziemy musieli skonfigurować ustawienia modułu pobierania. Dla dodatkowej opcji ustawień pobierania mamy poniższą listę ustawień.

- Automatycznie wykrywa kanały
- Użyj PubSubHubbub
- Zawsze pobieraj
- Limit czasu żądania
Odpowiednio skonfiguruj ustawienia dodatkowe.

• Parser pozwala skonfigurować format kanału. Tutaj mamy wiele opcji do wyboru, takich jak CSV, HTML, OPML, JsonPath (co jest naszym ustawieniem) itp. Wybierz tę z menu rozwijanego zgodnie z formatem pliku danych.
Na podstawie wybranego parsera będziemy musieli skonfigurować ustawienia parsera. W naszym przypadku nie mamy żadnych ustawień parsera dla parserów typu JsonPath.
• Ustawienia procesora pokazują konfiguracje rodzaju treści, jakie będzie tworzył kanał.
Podobnie mamy dodatkową opcję ustawień procesora, jak pokazano na poniższym obrazku.

Skonfiguruj dodatkowe ustawienia zgodnie z wymaganiami.
Poniższy zrzut ekranu przedstawia podstawowe ustawienia pobierania, parsera i procesora.

3. Mapowanie źródeł do celu
- Kontekst
Tekst pomocy mówi o zapytaniu podstawowym do uruchomienia, które pokazuje źródło lub bazę danych, które mają być celem importu kanałów Drupal jako treści. W naszym przykładzie skonfigurowaliśmy go jako „$.articles .*”, ponieważ nasze dane znajdują się w kluczu artykułu. Spójrz na tę dokumentację ścieżki, aby skonfigurować swoją.
- Mapowania pól
Teraz możemy skonfigurować moduł Feeds, aby decydować, która wartość pobrana z JSON powinna być mapowana na które pole w typie treści wiadomości Drupal.
Te cele to pola danych Drupal i są pobierane na podstawie procesora wybranego podczas tworzenia typu pliku danych. Możesz także skonfigurować inne ustawienia dla poszczególnych mapowań pól, takie jak język, format filtra (dotyczy pól z formatowaniem tekstowym), unikalny (unikalny identyfikator używany do śledzenia, czy zawartość jest nowa czy istniejąca) itp.
Na przykład, jeśli chcemy zaimportować tytuł treści artykułu wiadomości z kanału JSON jako pole tytułu treści wiadomości Drupal, celem będzie pole Tytuł Drupala, a źródłem będzie klucz tytułu artykułu wiadomości JSON, jak pokazano na poniższym zrzucie ekranu.

Tutaj używamy konfiguracji mapowania, jak pokazano na poniższym zrzucie ekranu.

Możesz również sklonować typ kanału za pomocą modułu Entity clone Drupal, który jest również obsługiwany w Drupal 9.
Tworzenie kanału
Aby utworzyć kanał, przejdź do treści -> karta Kanały -> dodaj kanał -> wybierz typ kanału

Stworzyłem już jeden dla News. Aby utworzyć nowy kanał, kliknij przycisk + Dodaj kanał i skonfiguruj kanał zgodnie z wymaganiami. Na naszym blogu skonfigurowaliśmy tak, jak pokazano na poniższym zrzucie ekranu.

Po konfiguracji kliknij Zapisz i importuj . Spowoduje to zaimportowanie kanałów Drupal jako treści. Podczas importowania danych zobaczysz status przetwarzania, jak pokazano na poniższym zrzucie ekranu.

Gdy dane JSON zostaną przeniesione do treści, możemy zobaczyć treść dodaną do typu treści wiadomości, jak pokazano na zrzucie ekranu poniżej.

Teraz porównajmy importowaną zawartość z kanałami.


Więcej szczegółowych informacji można znaleźć w tym przewodniku.
Dodatkowe moduły rozszerzające moduł Feeds
• Moduł Feeds Tamper pomaga modyfikować i aktualizować dane źródłowe, zanim zostaną zaimportowane do Twojej witryny.
• Rozszerzalne parsery kanałów zawierają zestaw parserów, takich jak XPath XML i HTML, parser linii JSONPath JSON i JSON itp.
• Moduł podglądu importu kanałów pozwala zobaczyć zawartość w źródle przed jej zaimportowaniem.
• Moduł Commerce Feeds pomaga w imporcie produktów do Twojej witryny Drupal Commerce.
