วิธีการนำเข้าฟีดภายนอกไปยังเว็บไซต์ Drupal 9 ของคุณด้วยโมดูลฟีด

เผยแพร่แล้ว: 2020-11-03

ในฐานะนักพัฒนา คุณจะต้องเผชิญกับสถานการณ์ต่างๆ มากมายเมื่อคุณต้องการนำเข้าข้อมูลจากแหล่งภายนอก บางครั้ง คุณจะต้องนำเข้าข้อมูลจากแหล่งมากกว่าหนึ่งแห่งไปยังเว็บไซต์ Drupal 9 ของคุณ โมดูล Feeds ใน Drupal เป็นโมดูลที่เรียบง่ายและไม่ยุ่งยาก ซึ่งช่วยให้แม้แต่ผู้ใช้ที่ไม่ใช่ด้านเทคนิคก็สามารถนำเข้าเนื้อหาจากแหล่งข้อมูลต่างๆ ได้ สิ่งที่ทำให้ง่ายกว่าโมดูล Drupal อื่นๆ เช่น โมดูล Migrate คือกระบวนการนำเข้าทั้งหมดดำเนินการผ่าน UI ของ Drupal มันส่งเนื้อหาถึงคุณในแบบที่คุณต้องการทันทีที่มีให้

เว็บไซต์หลายแห่งนำเข้าฟีด RSS / XML จากเว็บไซต์บุคคลที่สาม ในบล็อกนี้ เราจะได้รับฟีดข่าวที่นำเข้าผ่าน API บุคคลที่สามนี้ ซึ่งให้ข้อมูลในรูปแบบ json ด้วยความช่วยเหลือของโมดูลฟีดใน Drupal 9

drupal-9-feeds-module

การติดตั้ง Drupal Feeds Module

โมดูลฟีดสำหรับ Drupal 9 ช่วยให้คุณนำเข้าข้อมูลจากรูปแบบต่างๆ เช่น CSV, XML, JSON, RSS ฯลฯ ลงในโหนด ผู้ใช้ และข้อกำหนดการจัดหมวดหมู่ผ่าน UI

1. ติดตั้งโมดูล Drupal Feeds (ที่นี่เราจะใช้ผู้แต่ง)

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

2. ที่นี่ เราใช้ฟีด JSON เพื่อนำเข้าข้อมูล ดังนั้นเราจึงต้องการตัวแยกวิเคราะห์ JSON ซึ่งจะต้องให้เราติดตั้งอีกหนึ่งโมดูลซึ่งเป็นตัวแยกวิเคราะห์ที่ขยายได้ของฟีด วิธีที่ดีที่สุดในการติดตั้งโมดูลนี้คือการใช้ผู้แต่งเพราะจะดาวน์โหลดไลบรารีที่จำเป็นทั้งหมด (คุณยังสามารถข้ามขั้นตอนแรกได้ หากคุณดาวน์โหลดโดยใช้ผู้แต่ง เนื่องจากโมดูล Drupal feeds จะเป็นการพึ่งพาสำหรับโมดูล feed_ex )

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

หมายเหตุ: หากคุณไม่ได้ใช้ผู้แต่งในการติดตั้ง ไลบรารีที่ต้องการโดยโมดูลนี้สามารถติดตั้งกับโมดูล Ludwig ได้ ติดตั้งโมดูล Ludwig จากนั้นไปที่ /admin/reports/packages เพื่อดูคำแนะนำเพิ่มเติม

3. เปิดใช้งาน feeds และ feeds_ex (Feeds Extensible Parsers) โดยใช้ drush หรือผ่าน UI

โมดูลฟีด

การกำหนดค่าและการใช้งานโมดูลฟีด

ที่นี่ เราจะนำเข้าข้อมูลจากบทความเว็บไซต์ https://newsapi.org/ (หัวข้อที่เกี่ยวข้องกับ “ หัวข้อข่าวเด่นจาก TechCrunch ในตอนนี้ ”) ซึ่งเปิดเผยในรูปแบบ JSON ที่แสดงในภาพหน้าจอด้านล่าง

ในการรับข้อมูลข่าวนี้ เราต้องลงชื่อเข้าใช้เว็บไซต์และรับคีย์ API จากนั้นเลือกหัวข้อที่คุณต้องการนำเข้าข้อมูลไปยังเว็บไซต์ของคุณ

การกำหนดค่าโมดูลฟีด

ดูที่ API มาสร้างประเภทเนื้อหาที่จำเป็นต้องนำเข้าข้อมูลของเรา

การสร้างประเภทเนื้อหา

ที่นี่ ฉันได้สร้างเนื้อหาประเภทใหม่ที่เรียกว่า " ข่าวสาร " เลือกประเภทช่องตาม JSON ที่ต้องการย้ายข้อมูล

โมดูลฟีดประเภทเนื้อหา

ในภาพหน้าจอด้านบน เราได้เลือกฟิลด์อย่างง่ายสำหรับการนำเข้าข้อมูลเช่น Author ซึ่งเป็นฟิลด์ Text(ธรรมดา) สำหรับการนำเข้าข้อมูลจาก ผู้สร้างคีย์ JSON

ผู้เขียนคีย์ JSON

ดังที่คุณเห็นในภาพหน้าจอด้านบน เราได้เพิ่มฟิลด์ รายการ ฟีดประเภท ฟีด และเลือกประเภทฟีดตามนั้น เราจะเรียนรู้วิธีสร้างประเภทฟีดในหัวข้อถัดไปด้านล่าง

การสร้างประเภทฟีด

ทำตามขั้นตอนด้านล่างเพื่อสร้างประเภทฟีด

  1. ไปที่หน้าภาพรวมฟีด ( /admin/structure/feeds ) คุณสามารถดูฟีด Drupal ทั้งหมดที่ระบุไว้ในหน้านี้ ประเภทฟีด - โมดูลฟีด ฉันได้สร้างฟีดแล้ว 2 รายการ ที่นี่ฉันจะใช้ ฟีดข่าว คุณสามารถสร้างประเภทฟีดของคุณเองได้โดยคลิกที่เพิ่มประเภทฟีด
  2. เมื่อแก้ไขประเภทฟีดหรือเพิ่มประเภทฟีดใหม่ เราจะเห็นตัวเลือกด้านล่าง
  • การตั้งค่าพื้นฐาน
    มากำหนดการตั้งค่าพื้นฐานสำหรับประเภทฟีดกัน ก่อนอื่นให้ระบุชื่อ คำอธิบาย และคำอธิบายหรือแนวทางการส่งสำหรับประเภทฟีด
    โมดูลฟีดการตั้งค่าพื้นฐาน

    ระยะเวลานำเข้า (แสดงในแท็บการตั้งค่าด้านล่าง) ช่วยให้คุณเลือกความถี่ในการนำเข้าได้ สิ่งนี้จะทำผ่านงาน cron หากคุณเลือก ปิด การนำเข้าจะดำเนินการด้วยตนเอง

โมดูลฟีด
  • ตัวเลือกการตั้งค่า Fetcher จะแสดงตำแหน่งที่คุณนำเข้าเนื้อหาหรือดึงเนื้อหาจากที่ใด
    มีให้เลือก 3 แบบ คือ
  1. ไดเรกทอรี:- นำเข้าเนื้อหาจากไฟล์หรือชุดของไฟล์ที่มีอยู่แล้วบนเว็บไซต์ของคุณ
  2. ดาวน์โหลดจาก URL:- นำเข้าเนื้อหาจาก url (ซึ่งเราจะเลือกในกรณีของเรา)
  3. อัปโหลดไฟล์ :- นำเข้าเนื้อหาจากไฟล์

ตาม Fetcher ที่เลือก เราจะต้องกำหนดการตั้งค่า Fetcher สำหรับตัวเลือกรองของการตั้งค่าตัวดึงข้อมูล เรามีรายการการตั้งค่าด้านล่าง

  • ตรวจจับฟีดอัตโนมัติ
  • ใช้ PubSubHubbub
  • ดาวน์โหลดเสมอ
  • หมดเวลาการร้องขอ

กำหนดการตั้งค่ารองตามลำดับ

กำหนดค่า - โมดูลฟีด

Parser ให้คุณกำหนดค่ารูปแบบของฟีด ที่นี่เรามีตัวเลือกมากมายให้เลือก เช่น CSV, HTML, OPML, JsonPath (ซึ่งเป็นการตั้งค่าของเรา) ฯลฯ เลือกหนึ่งตัวเลือกจากเมนูดรอปดาวน์ตามรูปแบบฟีดของคุณ

ตาม parser ที่เลือก เราจะต้องกำหนดการตั้งค่า parser ในกรณีของเรา เราไม่มีการตั้งค่า parser สำหรับ parsers ประเภท JsonPath

• การตั้งค่า ตัวประมวลผล แสดงการกำหนดค่าของประเภทของเนื้อหาที่ฟีดจะสร้าง

ในทำนองเดียวกัน เรามีตัวเลือกการตั้งค่ารองสำหรับโปรเซสเซอร์ดังที่แสดงในภาพด้านล่าง

โมดูลฟีด

กำหนดการตั้งค่ารองของคุณตามความต้องการ
ภาพหน้าจอด้านล่างแสดงการตั้งค่าหลักของโปรแกรมดึงข้อมูล โปรแกรมแยกวิเคราะห์ และตัวประมวลผล

โมดูลฟีด


3. การทำแผนที่แหล่งที่มาเพื่อกำหนดเป้าหมาย

  • บริบท

ข้อความช่วยเหลือระบุว่าจะเรียกใช้การสืบค้นข้อมูลพื้นฐาน ซึ่งจะแสดงรูทหรือฐานของข้อมูลที่จะกำหนดเป้าหมายสำหรับการนำเข้าฟีด Drupal เป็นเนื้อหา ในตัวอย่างของเรา เราได้กำหนดค่าเป็น “$.articles .*” เนื่องจากข้อมูลของเราอยู่ภายในรหัสบทความ ดูเอกสารพาธนี้เพื่อกำหนดค่าของคุณ

  • การทำแผนที่ภาคสนาม

ตอนนี้ เราสามารถกำหนดค่าโมดูลฟีดเพื่อตัดสินใจว่าค่าใดที่ดึงมาจาก JSON ควรแมปกับฟิลด์ใดในประเภทเนื้อหาข่าวของ Drupal

เป้าหมายเหล่านี้เป็นฟิลด์ข้อมูล Drupal และดึงเข้ามาตามโปรเซสเซอร์ที่คุณเลือกเมื่อสร้างประเภทฟีด คุณยังสามารถกำหนดการตั้งค่าอื่นๆ สำหรับการแมปเฉพาะของฟิลด์ เช่น ภาษา รูปแบบตัวกรอง (ใช้ได้กับฟิลด์ที่จัดรูปแบบข้อความ) เฉพาะ (ตัวระบุที่ไม่ซ้ำที่ใช้ในการติดตามว่าเนื้อหานั้นเป็นเนื้อหาใหม่หรือที่มีอยู่) เป็นต้น

ตัวอย่างเช่น หากเราต้องการนำเข้า ชื่อเนื้อหา บทความ ข่าว ของ JSON เป็นช่องชื่อเนื้อหาข่าวของ Drupal เป้าหมายจะเป็นช่อง ชื่อ Drupal และแหล่งที่มาจะเป็น คีย์ชื่อบทความข่าว JSON ตามที่แสดงในภาพหน้าจอด้านล่าง

ฟีด JSON

ที่นี่เราใช้การกำหนดค่าการทำแผนที่ตามที่แสดงในภาพหน้าจอด้านล่าง

โมดูลฟีด

คุณยังสามารถโคลนประเภทฟีดได้โดยใช้โมดูล Entity clone Drupal ที่รองรับใน Drupal 9 ด้วย

การสร้างฟีด

ในการสร้างฟีด ให้ไปที่ เนื้อหา -> แท็บฟีด -> เพิ่มฟีด -> เลือกประเภทฟีด

โมดูลฟีด

ฉันได้สร้างไว้แล้วสำหรับ News ในการสร้างฟีดใหม่ ให้คลิกที่ปุ่ม + เพิ่มฟีด และกำหนดค่าฟีดตามต้องการ สำหรับบล็อกของเรา เราได้กำหนดค่าตามที่แสดงในภาพหน้าจอด้านล่าง

โมดูลฟีด

หลังจากกำหนดค่าแล้ว ให้คลิกที่ บันทึกและนำเข้า สิ่งนี้จะนำเข้าฟีดของ Drupal เป็นเนื้อหา เมื่อมีการนำเข้าข้อมูล คุณจะเห็นสถานะการประมวลผลดังแสดงในภาพหน้าจอด้านล่าง

โมดูลฟีด

เมื่อข้อมูล JSON ถูกย้ายไปยังเนื้อหา เราจะเห็นเนื้อหาที่เพิ่มไปยังประเภทเนื้อหาข่าวดังที่แสดงในภาพหน้าจอด้านล่าง

โมดูลฟีด

ตอนนี้ มาเปรียบเทียบเนื้อหาที่นำเข้ากับฟีด

โมดูลฟีด
แหล่งที่มาของเนื้อหาจากบทความ techcrunch
โมดูลฟีด
การนำเข้าฟีด Drupal - โมดูลฟีด

สำหรับข้อมูลโดยละเอียดเพิ่มเติม โปรดดูที่คู่มือนี้

โมดูลเพิ่มเติมเพื่อขยายโมดูลฟีด

• โมดูล Feeds Tamper ช่วยให้คุณปรับเปลี่ยนและอัปเดตข้อมูลต้นทางก่อนที่จะนำเข้ามายังเว็บไซต์ของคุณ
• Feeds extensible parsers มีชุดของ parsers เช่น XPath XML & HTML, JSONPath JSON & JSON lines parser เป็นต้น
• โมดูลแสดงตัวอย่างการนำเข้าฟีดช่วยให้คุณเห็นเนื้อหาในแหล่งที่มาของคุณก่อนที่จะนำเข้า
• โมดูล Commerce Feeds ช่วยคุณในการนำเข้าผลิตภัณฑ์ไปยังไซต์ Drupal Commerce ของคุณ