ฉันจะอนุญาตให้ผู้ใช้รับอีเมลเมื่อใดก็ตามที่ฉันอัปเดตบล็อกของฉันใน Drupal 7


11

ฉันมีบล็อกเป็นภาษาอังกฤษและภาษาญี่ปุ่นใน Drupal 7 ฉันสร้างบล็อกนี้โดยใช้ประเภทเนื้อหาที่กำหนดเองและมุมมองไม่ใช่โมดูลบล็อกในตัว

ฉันมีฟีด RSS (ทำใน Views) สำหรับแต่ละภาษา ฉันต้องการอนุญาตให้ผู้ใช้สมัครสมาชิกเพื่อรับการอัปเดตภาษาอังกฤษทั้งหมดสำหรับประเภทเนื้อหา "บล็อก" หรือการอัปเดตภาษาญี่ปุ่นทั้งหมดสำหรับบล็อก "ประเภทเนื้อหา" (ฉันคาดว่าผู้ใช้ส่วนใหญ่จะต้องการเพียงภาษาเดียวหรืออีกภาษาหนึ่งหากผู้ใช้ต้องการทั้งสองภาษาจริงๆฉันไม่รังเกียจที่จะสมัครเป็นสมาชิกสองครั้ง)

ฉันตรวจสอบการใช้ Feedburner ในฟีด RSS แต่โมดูล Feedburner ไม่ได้รับการอัพเดตสำหรับ D7 และฉันไม่ต้องการพึ่งพาบริการภายนอก (เมื่อฉันพยายามตั้งค่า Feedburner โดยไม่มีโมดูลมันบอกฉันว่าฟีด RSS ของฉันไม่มีอยู่แม้ว่าลิงก์สนับสนุนจะอนุญาตให้ฉันตรวจสอบความถูกต้องแล้ว)

ฉันยังดูที่โมดูลSimplenewsแต่โมดูลนั้นต้องการสร้างโพสต์จดหมายข่าวแยกกัน สิ่งที่ฉันต้องการทำคืออีเมลผู้ใช้ที่สมัครเป็นสมาชิกโดยอัตโนมัติเมื่อฉันโพสต์การอัปเดตไปยังบล็อก

ฉันแน่ใจว่ามีหลายวิธีในการทำเช่นนี้ แต่มี "ผู้ช่วยจดหมาย" จำนวนมาก - โมดูลประเภทที่ฉันกำลังสูญเสียว่าจะเริ่มต้นที่ไหน

เพื่อสรุปความต้องการของฉันฉันต้องการ:

  • สมาชิกอีเมลอัตโนมัติเมื่อมีการเพิ่มบล็อกใหม่ในภาษาที่เหมาะสม
  • ผู้ใช้ที่ได้รับการรับรองความถูกต้องและไม่ระบุชื่อควรจะสามารถสมัครรับข้อมูลได้
  • การสมัครสมาชิกจะต้องมีการยืนยัน (ข้อกำหนดทางกฎหมาย)
  • ความเข้ากันได้กับโมดูลจดหมาย MIMEจะเป็นโบนัสที่ดี

คำตอบ:


1

อีกทางเลือกหนึ่งคือการใช้ Google Feedburner เพื่อส่งอีเมลในนามของคุณ

ดูเอกสารประกอบแบบออนไลน์สำหรับข้อมูลเพิ่มเติม

เมื่อ Google feedburner มีการ 'เขียน' ฟีดของคุณคุณสามารถรับรหัสฝังสำหรับแบบฟอร์มสมัครใช้งานเพื่อให้ผู้ใช้สามารถรับการแจ้งเตือนทางอีเมล เหตุผลที่สิ่งนี้เหมาะสมกับความต้องการของคุณเป็นอย่างมากก็คือมันมีเนื้อหาเกี่ยวกับแหล่งฟีด RSS ที่มีคุณภาพและ Views สามารถสร้างสิ่งนี้ได้ คำถามจริงเท่านั้นคือว่าคุณต้องการมีเนื้อหาแบบเต็มหรือทีเซอร์เฉพาะใน RSS (และอีเมลดังนั้น)

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

คุณสมบัติฟีดเบิร์นเนอร์ของ Google ประกอบด้วย (ตรงจากเอกสารด้านบน):

การจัดการการสมัครสมาชิก

  • ดูและเรียงลำดับรายการ
  • เปิดใช้งานปิดใช้งานและลบที่อยู่อีเมลแต่ละรายการ
  • ส่งออกรายการของคุณในรูปแบบ Excel หรือ CSV
  • รับอีเมลทางเลือกเมื่อมีคนบอกเลิก

การตั้งค่าการสื่อสาร

  • ปรับแต่งหัวเรื่องและเนื้อหาของอีเมลที่ส่งไปยังสมาชิกหลังจากที่พวกเขาเลือกที่จะรับฟีดของคุณทางอีเมล สิ่งนี้มีประโยชน์ถ้าคุณต้องการ จำกัด วงอีเมล
  • หมายเหตุสำคัญ: อีเมลเป็นข้อความเท่านั้นและการอ้างอิง $ {confirmlink} ดั้งเดิมจะต้องรวมอยู่ในอีเมลยืนยันของคุณเพื่อเปิดใช้งานการสมัครสมาชิก

การสร้างแบรนด์อีเมล

  • ปรับแต่งหัวเรื่องและหัวเรื่องของอีเมลที่ส่งถึงสมาชิกของคุณ
  • เพิ่มโลโก้ที่กำหนดเองที่ปรากฏที่ด้านบนของข้อความอีเมล์ HTML
  • เปลี่ยนแบบอักษรเนื้อหาและข้อความพาดหัวขนาดและสีรวมทั้งสีของลิงก์

ตัวเลือกการจัดส่ง

  • เลือกเขตเวลาของคุณ
  • เลือกหน้าต่างการส่งสองชั่วโมงภายในระยะเวลาการส่งข้อมูลรายวันของคุณ

ตัวอย่างการสอนเกี่ยวกับวิธีการตั้งค่านี้สามารถพบได้ที่นี่


ขอบคุณที่แนะนำ Feedburner แต่ตามที่ระบุไว้ในคำถามเดิมมันปฏิเสธที่จะเบิร์นฟีดของฉันแม้ว่าจะสามารถตรวจสอบความถูกต้องของฟีดได้ก็ตาม ข้อผิดพลาดที่แน่นอนที่ทำให้ฉันคือ "รหัสข้อผิดพลาด HTTP ที่ได้รับ 400 ขณะดึงข้อมูลฟีดต้นทาง"; อย่างไรก็ตามเมื่อฉันคลิกลิงก์ "ตรวจสอบฟีดนี้" ในหน้าข้อผิดพลาดมันจะบอกฉันว่าฟีดนั้นถูกต้อง น่าเสียดายที่ Feedburner ยังไม่มีตัวเลือกการสนับสนุน
Patrick Kenny

ฉันมีข้อผิดพลาดเดียวกันปัญหาของเราคือ Google feedburner ไม่รองรับ SSL ทางออกที่ง่ายคืออนุญาตการเข้าถึงฟีด HTTP
Wii

1
หากการอนุญาตให้เข้าถึง HTTP ไปยังฟีดไม่ใช่ตัวเลือกในโครงการล่าสุดเราได้เชื่อมโยงฟีด RSS ผ่าน Google Reader จริง ๆ แล้วเข้าสู่ Google Feedburner (ยุ่ง แต่ก็ใช้งานได้) นี่คือตัวอย่างฟีดจากฟีดกระบวนการนี้feedburner.com/TranspowerNewsFeed - เนื่องจากทั้งไซต์transpower.co.nzปลอดภัยภายใต้ HTTPS
wiifm

การให้รางวัลคำตอบนี้ได้รับรางวัลเพราะปรากฎว่ามันง่ายกว่าที่ฉันจะตั้งค่าใน Feedburner แม้ต้องเปลี่ยนเส้นทาง SSL ผ่าน Google Reader มากกว่าใช้ Simplenews
Patrick Kenny

5

สิ่งนี้สามารถรับได้ง่าย ฉันสามารถให้คุณทำตามขั้นตอนบางอย่าง

มีอย่างน้อย 2 วิธีในการบรรลุเป้าหมายดังกล่าว

A. การใช้ทริกเกอร์ (โมดูลหลัก)

  1. เปิดใช้งานทริกเกอร์โมดูลหลักก่อน สิ่งนี้จะให้ทริกเกอร์พื้นฐาน (ในกรณีของคุณคือทริกเกอร์ UPDATE) และการกระทำที่จะทำงานเมื่อตรงตามเงื่อนไข

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

  3. ไปที่ผู้ดูแลระบบ> โครงสร้าง> ทริกเกอร์จากนั้นแท็บโหนด เลือกตัวที่สาม: TRIGGER: หลังจากบันทึกเนื้อหาที่อัพเดทแล้ว

หากคุณต้องการการควบคุมมากขึ้นให้ปรับใช้เบ็ด

ฟังก์ชัน YOURMODULE_trigger_info_alter (& $ ทริกเกอร์) {// ที่นี่ dpm ($ ทริกเกอร์) เพื่อดูว่าทริกเกอร์อัพเดตของคุณอยู่ที่ไหนและทำการเปลี่ยนแปลง }?>

B. การใช้กฎ (โมดูล contrib) พื้นฐานในสิ่งเดียวกัน หากคุณติดค้างทำตามขั้นตอนเหล่านี้ในปัญหาที่คล้ายกันในบล็อกนี้: http://adellefrank.com/blog/how-to-email-notifications-comments-drupal7


1
'ทริกเกอร์: หลังจากบันทึกเนื้อหาใหม่' จะส่งอีเมลเดียวในการสร้างโพสต์โดยที่เป็น 'ทริกเกอร์: หลังจากบันทึกเนื้อหาที่อัปเดตแล้ว' จะส่งอีเมลใหม่หากมีการอัปเดตใด ๆ ในโพสต์
Citricguy

1
หากใช้กฎทำไมฉันถึงต้องใช้การกระทำ "ส่งอีเมล" แทนการกระทำ "ส่งจดหมายข่าวทางอีเมล" ที่จัดทำโดยโมดูล Simplenews
Patrick Kenny

5

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

ในการทำสิ่งนี้:

  1. รูปแบบการกำหนดค่าเปิดของประเภทเนื้อหาบล็อก (/ admin / โครงสร้าง / ประเภท / จัดการ / บล็อก)
  2. ในแท็บ "ตัวเลือกการเผยแพร่" เลือก "ใช้เป็นจดหมายข่าวใหม่"

ตัวเลือก "แหล่งจดหมายข่าว" อยู่ที่ไหนในการกำหนดค่า Simplenews ฉันคิดว่าฉันเคยผ่านทุกเมนูและฉันไม่พบอะไรที่คล้าย ...
แพทริคเคนนี

ดูคำตอบที่อัปเดตข้างต้น
Eugene Fidelin

1

ถ้าคุณต้องการที่จะทำมันทางโปรแกรมดูdrupal_mail ($ โมดูล, $ key, $ to, $ language, $ params = array (), $ from = NULL, $ send = TRUE) ,

เมื่อโหนดถูกอัพเดต hook hook_node_update ($ node)จะถูกเรียกใช้ ถ้าคุณต้องการที่จะสร้างตัวเองประกอบการใช้งานรูปแบบจดหมายhook_mail ($ สำคัญและข้อความ $, $ params) ดังนั้นคุณต้องเขียน 2 hooks ก่อน hook_node_update และ hook_mail ภายใน hook_node_update คุณต้องเขียนฟังก์ชั่น drupal_mail ที่จะเรียก hook_mail ของคุณ


0

คุณสามารถใช้การสมัครสมาชิกโดยรวมของโมดูล sandbox ของฉัน

โมดูลนี้อยู่ในคิวโครงการ drupal นี่คือลิงค์สำหรับมัน: - ลิงค์

ฉันคิดว่ามันจะให้ฟังก์ชั่นที่คุณต้องการ


1
คุณช่วยขยายเล็กน้อยเกี่ยวกับวิธีที่โมดูลนี้จะแก้ปัญหาของผู้ใช้ได้หรือไม่?
mpdonadio
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.