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

การติดตั้ง 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

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

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

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

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

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

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

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

คุณยังสามารถโคลนประเภทฟีดได้โดยใช้โมดูล Entity clone Drupal ที่รองรับใน Drupal 9 ด้วย
การสร้างฟีด
ในการสร้างฟีด ให้ไปที่ เนื้อหา -> แท็บฟีด -> เพิ่มฟีด -> เลือกประเภทฟีด

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

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

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

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


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