Feeds Modülü ile Harici Feed'leri Drupal 9 Web Sitenize Nasıl Aktarırsınız?

Yayınlanan: 2020-11-03

Bir geliştirici olarak, harici kaynaklardan veri aktarmanız gerektiğinde birkaç durumla karşılaşacaksınız. Bazen birden fazla kaynaktan Drupal 9 web sitenize veri aktarmanız gerekebilir. Drupal'daki Feeds modülü, teknik bilgisi olmayan kullanıcıların bile farklı veri kaynaklarından içerik içe aktarmasına olanak tanıyan basit, sorunsuz bir modüldür. Migrate modülü gibi diğer Drupal modüllerinden daha basit kılan şey, tüm içe aktarma işleminin Drupal'ın UI'si aracılığıyla yapılmasıdır. İçeriği hazır olur olmaz istediğiniz şekilde size ulaştırır.

Birçok web sitesi, üçüncü taraf sitelerden RSS / XML beslemelerini içe aktarır. Bu blogda, Drupal 9'daki Feeds modülünün yardımıyla json formatında veri sağlayan bu 3. parti API aracılığıyla içe aktarılan bir haber beslemesi alacağız.

drupal-9-feeds-modülü

Drupal Feeds Modülünü Kurma

Drupal 9 için Feeds modülü, CSV, XML, JSON, RSS vb. gibi farklı biçimlerdeki verileri kullanıcı arabirimi aracılığıyla düğümlere, kullanıcılara ve sınıflandırma terimlerine aktarmanıza olanak tanır.

1. Drupal Feeds modülünü kurun (Burada besteci kullanacağız)

 composer require 'drupal/feeds:^[email protected]'
composer require 'drupal/feeds:^[email protected]'

2. Burada, verileri içe aktarmak için JSON beslemelerini kullanıyoruz. Bu nedenle, Feeds genişletilebilir ayrıştırıcısı olan bir modül daha yüklememizi gerektirecek bir JSON ayrıştırıcısına ihtiyacımız var. Bu modülü kurmanın en iyi yolu, gerekli tüm kitaplıkları indirdiği için besteci kullanmaktır. (Drupal feeds modülü feed_ex modülü için bir bağımlılık olacağından besteci kullanarak indiriyorsanız ilk adımı da atlayabilirsiniz).

 composer require 'drupal/feeds_ex:^[email protected]'
composer require 'drupal/feeds_ex:^[email protected]'

Not: Kurmak için besteci kullanmıyorsanız, bu modülün gerektirdiği kitaplıklar Ludwig modülüyle de kurulabilir. Ludwig modülünü kurun ve daha fazla talimat için /admin/reports/packages adresine gidin.

Drush kullanarak veya kullanıcı arayüzü yoluyla ya beslemeleri ve feeds_ex (Beslemeler Genişletilebilir ayrıştırıcılar) modülünün etkinleştirme 3..

Besleme Modülü

Feeds Modülünü Yapılandırma ve Uygulama

Burada, aşağıdaki ekran görüntüsünde gösterilen JSON formatında gösterilen https://newsapi.org/ web sitesi makalelerinden (“ Şu anda TechCrunch'tan en iyi başlıklar ” ile ilgili konular) verileri içe aktaracağız .

Bu haber verilerini almak için web sitesine giriş yapmamız ve bir API anahtarı almamız gerekiyor. Ardından, verilerini web sitenize aktarmak istediğiniz konuları seçin.

besleme modülü yapılandırması

API'ye bakarak verilerimizin içe aktarılması gereken bir içerik türü oluşturalım.

İçerik Türü Oluşturma

Burada “ Haber ” adında yeni bir içerik türü oluşturdum. Verilerin taşınması gereken JSON'unuza göre alan türünü seçin.

içerik türü besleme modülü

Yukarıdaki ekran görüntüsünde, JSON anahtar yazarından veri aktarımı için Metin(düz) alanı olan Yazar gibi verileri içe aktarmak için basit alanlar seçtik.

JSON Anahtar Yazarı

Yukarıdaki ekran görüntüsünde gördüğünüz gibi Feed tipi Feeds item alanını ekledik ve feed tipini buna göre seçtik. Aşağıdaki bir sonraki bölümde bir Feed türünün nasıl oluşturulacağını öğreneceğiz.

Bir Besleme Türü Oluşturma

Bir besleme türü oluşturmak için aşağıdaki adımları izleyin.

  1. Feed'lere genel bakış sayfasına gidin ( /admin/structure/feeds ). Bu sayfada listelenen tüm Drupal beslemelerini görebilirsiniz. besleme türü - besleme modülü Zaten 2 besleme oluşturdum. Burada Haber beslemelerini kullanacağım. Besleme türü ekle'yi tıklayarak kendi besleme türünüzü oluşturabilirsiniz.
  2. Feed türünü düzenlerken veya yeni bir feed türü eklerken aşağıdaki seçenekleri göreceğiz.
  • Temel ayarlar
    Feed türü için Temel ayarları yapılandıralım, İlk olarak, feed türü için Ad, Açıklama ve Açıklama veya gönderme yönergelerini sağlayın.
    Temel ayar besleme modülü

    İçe aktarma süresi (aşağıdaki ayarlar sekmesinde gösterilir), içe aktarmanın ne sıklıkla çalıştırılacağını seçmenize yardımcı olur. Bu bir cron işi aracılığıyla yapılacaktır. Kapalı'yı seçerseniz, içe aktarma manuel olarak yapılacaktır.

besleme modülleri
  • Alıcı ayarları seçeneği, içeriği nereden içe aktardığınızı veya içeriği nereden aldığınızı gösterir.
    Aralarından seçim yapabileceğiniz 3 seçenek sunar,
  1. Dizin: - İçeriği bir dosyadan veya web sitenizde bulunan bir dizi dosyadan içe aktarın.
  2. URL'den indir: - İçeriği url'den içe aktarın (Bizim durumumuzda seçeceğiz).
  3. Dosya yükle: - Bir dosyadan içeriği içe aktarın.

Seçilen Getiriciye bağlı olarak, Getirici ayarlarını yapılandırmamız gerekecek. Alıcı ayarlarının ikincil seçeneği için aşağıdaki ayar listesine sahibiz.

  • Beslemeleri otomatik algılar
  • PubSubHubbub'u kullanın
  • Her zaman indir
  • İstek zaman aşımına uğradı

İkincil ayarları buna göre yapılandırın.

Yapılandır - besleme modülleri

Ayrıştırıcı , beslemenin biçimini yapılandırmanıza olanak tanır. Burada CSV, HTML, OPML, JsonPath (bizim ayarımızdır) vb. arasından seçim yapabileceğiniz birçok seçeneğimiz var. Açılır menüden besleme biçiminize göre birini seçin.

Seçilen ayrıştırıcıya göre ayrıştırıcı ayarlarını yapılandırmamız gerekecek. Bizim durumumuzda, JsonPath tipi ayrıştırıcılar için herhangi bir ayrıştırıcı ayarımız yok.

İşlemci ayarları, beslemenin oluşturacağı içerik türünün yapılandırmalarını gösterir.

Benzer şekilde, aşağıdaki resimde gösterildiği gibi işlemci için ikincil bir ayar seçeneğimiz var.

besleme modülleri

İkincil ayarlarınızı gereksinime göre yapılandırın.
Aşağıdaki ekran görüntüsü, alıcı, ayrıştırıcı ve işlemcinin birincil ayarlarını gösterir.

besleme modülleri


3. Kaynakları hedefle eşleştirme

  • Bağlam

Yardım metni, içerik olarak Drupal beslemeleri içe aktarma için hedeflenecek verilerin kökünü veya tabanını gösteren temel sorgunun çalıştırılacağını söyler. Örneğimizde, verilerimiz makale anahtarının içinde bulunduğu için onu “$.articles .*” olarak yapılandırdık. Sizinkini yapılandırmak için bu yol belgelerine bakın.

  • Alan Eşlemeleri

Şimdi, JSON'dan alınan hangi değerin Drupal haber içerik türünde hangi alanla eşleşmesi gerektiğine karar vermek için Feeds modülünü yapılandırabiliriz.

Bu hedefler Drupal veri alanlarıdır ve besleme türünü oluştururken seçtiğiniz işlemciye göre çekilir. Dil, filtre formatı (metin formatlı alanlar için geçerlidir), benzersiz (içeriğin yeni mi yoksa mevcut mu olduğunu izlemek için kullanılan benzersiz tanımlayıcı), vb. gibi alanların belirli eşlemeleri için diğer ayarları da yapılandırabilirsiniz.

Örneğin, JSON beslemesi haber makalesi içerik başlığını Drupal haber içeriği başlık alanı olarak içe aktarmak istiyorsak, hedef Drupal Başlık alanı olacak ve kaynak, aşağıdaki ekran görüntüsünde gösterildiği gibi JSON haber makalesi başlık anahtarı olacaktır.

JSON Feed'leri

Burada, aşağıdaki ekran görüntüsünde gösterildiği gibi eşleme yapılandırmasını kullanıyoruz.

besleme modülleri

Drupal 9'da da desteklenen Entity klonu Drupal modülünü kullanarak besleme türünü de klonlayabilirsiniz.

Feed Oluşturma

Bir yayın oluşturmak için içerik -> Yayınlar sekmesi -> yayın ekle -> yayın türünü seçin seçeneğine gidin

besleme modülleri

Haberler için zaten bir tane oluşturdum . Yeni bir besleme oluşturmak için + Besleme ekle düğmesine tıklayın ve beslemeyi gerektiği gibi yapılandırın. Blogumuz için aşağıdaki ekran görüntüsünde gösterildiği gibi yapılandırdık.

besleme modülleri

Yapılandırmadan sonra Kaydet ve İçe Aktar'a tıklayın . Bu, Drupal beslemelerini içerik olarak içe aktaracaktır. Veriler içe aktarılırken, aşağıdaki ekran görüntüsünde gösterildiği gibi işlem durumunu göreceksiniz.

besleme modülleri

JSON verileri içeriğe taşındıktan sonra, aşağıdaki ekran görüntüsünde gösterildiği gibi haber içerik türüne eklenen içeriği görebiliriz.

besleme modülleri

Şimdi içe aktarılan içeriği feed'lerle karşılaştıralım.

besleme modülleri
Techcrunch makalesinden Kaynak İçerik
besleme modülleri
Drupal beslemeleri içe aktarma - Yayınlar modülü

Daha ayrıntılı bilgi için bu kılavuza başvurabilirsiniz.

Feeds modülünü genişletmek için ek modüller

• Feeds Tamper modülü, kaynak verileri web sitenize aktarılmadan önce değiştirmenize ve güncellemenize yardımcı olur.
• Feeds genişletilebilir ayrıştırıcıları, XPath XML ve HTML, JSONPath JSON ve JSON satır ayrıştırıcı vb. gibi bir dizi ayrıştırıcı içerir.
• Feed'leri İçe Aktarma Önizleme modülü, içe aktarmadan önce kaynağınızdaki içeriği görmenizi sağlar.
• Commerce Feeds modülü, ürünleri Drupal Commerce sitenize aktarmanıza yardımcı olur.