วิธีสร้างการแจ้งเตือนผู้ใช้สไตล์ Facebook?


14

การใช้ Heartbeat ฉันสามารถทำกิจกรรมของผู้ใช้ได้อย่างมีประสิทธิภาพผ่านทริกเกอร์กฎ อย่างไรก็ตามฉันต้องการให้ผู้ใช้แจ้งกิจกรรมใหม่และให้นับจำนวนกิจกรรมใหม่เช่นใน facebook หรือคล้ายกับจำนวนอีเมลใหม่ในระบบอีเมลส่วนใหญ่

ใน Drupal 6 มีเพียงไม่กี่โมดูลที่สามารถประสบความสำเร็จในเรื่องนี้ได้ แต่จะทำใน Drupal 7 ได้อย่างไร

ฉันได้ทำการวิจัยอย่างกว้างขวางเกี่ยวกับเรื่องนี้ แต่ไม่สามารถหาโมดูลที่ถูกต้องได้ในตอนนี้: มีโมดูลการแจ้งเตือนผู้ใช้และตัวแจ้งเตือนซึ่งจะเป็นโซลูชันที่สมบูรณ์แบบยกเว้นรุ่น D6 เท่านั้น มีการแจ้งเตือนซึ่งไม่สามารถรวมเข้ากับโมดูลการบันทึกกิจกรรมใด ๆ เนื่องจากไม่มีการสนับสนุนกฎที่เหมาะสม การใช้งานที่น่าสนใจสองอย่างคือAppbarและTaskbarซึ่งมีถาดรายการเลื่อนลงพร้อมรายการกิจกรรม แต่ไม่นับจำนวนกิจกรรมใหม่และไม่รวมเข้ากับกฎอีกต่อไป ในที่สุดDLikeยอดเยี่ยมในฐานะตัวนับไดนามิกแม้ว่าในขณะนี้นับเฉพาะสถานะและให้ลิงก์ไปยังรายการของผู้ใช้ที่ตั้งค่าสถานะ บางทีด้วยการปรับแต่งบางอย่างมันสามารถใช้ผ่านการรวมสถานะกฎเพื่อติดตามกิจกรรมล่าสุด (ถูกตั้งค่าสถานะ) และเชื่อมโยงไปยังรายการกิจกรรมล่าสุดเหล่านี้

เป็นไปได้ไหมที่จะใช้งานฟังก์ชั่นคล้ายกับ Drupal 7? Facebook


1
นี่ไม่ใช่คำตอบฉันมีความต้องการชนิดเดียวกันและไม่ใช่ของโมดูลก็เหมาะสำหรับการใช้งาน ดังนั้นฉันจึงได้รับสิ่งนี้ด้วยบล็อกที่กำหนดเองซึ่งแสดงจำนวนการแจ้งเตือนพร้อมด้วยดรอปดาวน์และรายละเอียด สำหรับการแจ้งเตือนแบบเรียลไทม์ฉันกำลังใช้โมดูล nodejs เพื่อผนวกการแจ้งเตือนใหม่ในนั้นกิจกรรมสำหรับ nodejs จะถูกเรียกจากกฎด้วยรหัส php
j2r


ฉันมีสิ่งนี้: drupal.stackexchange.com/questions/158932/ …
drupaluser

คำตอบ:


4

วิธีที่ 1: ป้ายเมนู

ใช้โมดูลป้ายเมนูเพื่อเพิ่มการแจ้งเตือนดังกล่าวไปยังรายการเมนูและ / หรือแท็บเมนูที่คุณต้องการ นี่คือรายละเอียดบางอย่างเกี่ยวกับมัน (จากหน้าโครงการ):

จัดเตรียมวิธีสำหรับการเพิ่มตราสัญลักษณ์สไตล์ iOS ให้กับรายการเมนู (ดูภาพหน้าจอ)

ป้อนคำอธิบายรูปภาพที่นี่

การเพิ่มป้ายไปยังเมนู

เมื่อเปิดใช้งานไปที่Administration > Structure > Menusและคลิก "ลิงค์รายการ" ถัดจากเมนูที่มีรายการเป้าหมาย คลิก "แก้ไข" ถัดจากรายการและเลือกตราสัญลักษณ์เพื่อแสดงพร้อมกล่องแสดงตราสัญลักษณ์เมนูแสดงผล

การเพิ่มป้ายให้กับแท็บ

สำหรับการเพิ่มป้ายในแท็บเมนูมีแท็บภายใต้Administration > Structure > Menusชื่อ "ป้ายเมนูแท็บ" ค้นหาเส้นทางเราเตอร์เมนูของแท็บที่คุณต้องการแก้ไขจากนั้นเลือกตราจากกล่องเลือกที่สอดคล้องกัน

ประเภทป้าย

โมดูลรวมถึงห้าป้ายเช่นและป้ายใหม่ที่สามารถสร้างขึ้นได้อย่างง่ายดายด้วยการเข้าชม โมดูลยังสามารถจัดหาตราของตนเองด้วยการใช้เบ็ด ดูไฟล์README.txtสำหรับรายละเอียด

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

บทแนะนำวิดีโอ:

วิธีที่ 2: สแต็กข้อความ

ใช้Message Stackซึ่งประกอบด้วยโมดูลเหล่านี้ (อัญประกาศมาจากหน้าโครงการของโมดูล):

  • ข้อความ :

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

  • ข้อความแจ้ง

    โมดูลนี้มีวิธีการส่งข้อความผ่านปลั๊กอินตัวแจ้ง ข้อความแจ้งเตือนมาพร้อมกับปลั๊กอินสำหรับอีเมลและ SMS และอาจขยายไปยังกลไกการขนส่งอื่น ๆ ตามที่ต้องการ

  • ข้อความสมัครสมาชิก

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

เหล่านี้เป็นส่วนประกอบพื้นฐานและการอ้างอิงของสแต็กข้อความ:

ป้อนคำอธิบายรูปภาพที่นี่

ค่อนข้างไม่กี่กระจาย Drupal เป็นที่นิยมนำมาใช้แล้วข้อความ Stack นี้เช่นเช่นพาณิชย์กระตุ้น , Drupal คอมมอนส์ , ERPALและเปิดเอเทรียม

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

และสแต็คข้อความจะทำให้คุณอยู่ในตำแหน่งที่ดีสำหรับ Drupal 8 ด้วยเช่นกัน (เนื่องจากเขาเป็นโมดูลที่เน้นสถาปัตยกรรมวัตถุ) แม้ว่าจะยังไม่มีสิ่งใดเช่น 8.x-dev แต่ที่เก็บรหัสข้อความมีบางสิ่งอยู่แล้ว (ยังไม่พร้อมสำหรับ 2 โมดูลอื่น ๆ ) ฉันถือว่าwipส่วนของชื่อสาขาย่อมาจาก 'Work In Progress'


will make you well positioned for Drupal 8 also.คุณหมายถึงอะไรในอนาคต ฉันเห็นว่าไม่มีโมดูลข้อความใดที่มีรุ่น Drupal 8 เลยแม้แต่รุ่นเดียว
ไม่มี Sssweat

1
เฮ้ @ NoSssweat ... ฉันยืดออกเล็กน้อย (จากนั้นจบ) คำตอบของฉันเพื่อชี้แจงส่วน D8 ของมัน
Pierre.Vriens

ขอบคุณมากสำหรับความมีน้ำใจของคุณที่ @ Pierre.Vriens ฉันจะตรวจสอบเอกสารทั้งหมดที่เกี่ยวข้องโดยหวังว่าฉันจะมีความคิดที่ชัดเจนเกี่ยวกับสแต็กข้อความ ...
Charbel El Azzi

1
ฉันหมายความว่าฉันคุ้นเคยกับวิธีทำให้ระบบการแจ้งเตือนทำงานระหว่างผู้ใช้บนเว็บไซต์ของฉันและตอนนี้ฉันได้เรียนรู้เพิ่มเติมเกี่ยวกับสแต็คข้อความที่ฉันดีใจ แต่ฉันยังสับสนว่าฉันสามารถออกแบบเมนูการแจ้งเตือนแบบเลื่อนลงได้อย่างไร .
Charbel El Azzi

1
อีกตัวอย่างหนึ่งที่จะเข้าใจปัญหาของฉันมากขึ้น: ดูเมนูแบบเลื่อนลงเมื่อคุณเลื่อนเมาส์ไปวางไว้บนรถเข็นช็อปปิ้งในเว็บไซต์ kickstart 2 ของการพาณิชย์ (ถ้าคุณคุ้นเคยกับการแจกจ่ายแบบ kickstart) ... ระบบดร็อปดาวน์ดังกล่าว คำถามของฉัน ... ขอบคุณอีกครั้งสำหรับเวลาและความพยายามของคุณที่รัก @ Pierre.Vriens ขอพระเจ้าอวยพรคุณ
Charbel El Azzi

3

มีคู่ที่ค่อนข้างใหม่ของโมดูลที่ฉันคิดว่าจะดีที่จะใช้สำหรับการนี้คือ: ข้อความและข้อความแจ้ง

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

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


3

สำหรับการรวมเรียลไทม์คุณสามารถใช้โมดูล nodejs

โมดูลนี้รวม Node.js กับ Drupal

เป็น API ที่โมดูลอื่นสามารถใช้เพื่อเพิ่มความสามารถแบบเรียลไทม์ให้กับ Drupal โดยเฉพาะการเปิดใช้งานการอัปเดตเพื่อเปิดไคลเอนต์ที่เชื่อมต่อ

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