ส่งอีเมลแจ้งเตือนเมื่อมีความคิดเห็นใหม่โพสต์


15

ฉันใช้ Drupal 8.1 กับกฎ 8.x-3.0-alpha1

ฉันต้องการสร้างกฎเพื่อส่งอีเมลไปยังผู้สร้างโหนดเมื่อความคิดเห็นใหม่ถูกโพสต์ไปยังโหนดนี้ ปัญหาคือฉันไม่ได้รับที่อยู่อีเมลของผู้เขียนที่มีกฎเพราะชุดข้อมูลให้ฉันเท่านั้นค่านี้: @ node.node_route_context: โหนดหรือความคิดเห็น แต่ภายใต้ความคิดเห็นฉันไม่พบสิ่งใดเช่นความเห็น: โหนด: ผู้เขียน ใน Drupal 7 ฉันมีข้อมูลนี้ ฉันต้องทำอะไรใน Drupal 8


สถานะอัลฟาของกฎอาจหมายความว่าฟังก์ชันนี้ยังไม่ได้ใช้งานซึ่งคุณต้องแก้ไขด้วยตนเอง
Bojan Zivanovic

1
ขอบคุณ แต่มันเป็นปัญหาของโมดูลโทเค็น เนื่องจากโมดูลอื่น ๆ เช่นการแจ้งเตือนของเอนทิตีไม่ได้รับผู้แต่ง: เมลด้วย โทเค็นนี้ดูใช้ไม่ได้
lolhonk

คำตอบ:


5

อัปเดตคำตอบ

ในขณะที่กำลังทดสอบสิ่งนี้บน Drupal 8 พร้อมติดตั้งกฎใหม่ (อัลฟ่า 2) ฉันพบข้อผิดพลาดซึ่งทำให้การทดสอบนี้ประสบความสำเร็จในขณะที่ตัวเลือกข้อมูลด้านล่างนั้นถูกต้องฉันไม่สามารถสร้างกฎการทำงานได้ในปัจจุบัน

รายงานข้อผิดพลาดอยู่ที่นี่: https://www.drupal.org/node/2770291 - เพื่อสรุปปัญหานี้กฎคาดว่าพารามิเตอร์ TO: จะเป็นอาร์เรย์และจะโยนข้อผิดพลาดเมื่อผ่านโทเค็นที่อยู่อีเมลด้านล่างซึ่งส่งกลับค่า เชือก

คำตอบเริ่มต้นของฉันยังคงเป็นจริงสำหรับ Drupal 7 แต่สำหรับ Drupal 8 สถานการณ์ดูเหมือนง่ายขึ้นและขึ้นอยู่กับข้อเท็จจริงเดียวที่ยังไม่ได้รับการบันทึกไว้อย่างดี

ใน D7 เราคุ้นเคยกับไวยากรณ์ที่คล้ายกัน: comment:node:author:mail

ใน D8 ตัวเลือกเดียวกัน (ซึ่งใช้งานได้) คือ: comment.entity_id.entity.uid.entity.mail.value

หวังว่าสิ่งนี้จะช่วยให้ฉันออกจากคำตอบก่อนหน้านี้ด้านล่างในกรณีที่ช่วยคนอื่น

คำตอบก่อนหน้า

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

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


ฉันจะสนใจที่จะเห็นการทำงานการปกครองรวมอยู่ในคำตอบนี้ที่จริงไม่ว่าคำถามนี้เป็นเรื่องเกี่ยวกับ ... สำหรับ D8 คุณสามารถอัปเดตแอนเวอร์เพื่อรวมตัวอย่างดังกล่าว (โดยใช้โมดูลกฎรุ่น D8 ล่าสุดได้หรือไม่ PS: จากจำนวน upvotes ของคำถามนี้ดูเหมือนว่ามีผู้ใช้คนอื่น ๆ ที่กำลังมองหาสิ่งที่คล้ายกัน ...
Pierre Vriens

สิ่งที่แน่นอนและเป็นความคิดที่ดีฉันจะใช้เวลาสักครู่เพื่อหมุนไซต์ทดสอบใหม่เพื่อสร้างสิ่งนี้
HomoTechsual

รอไม่ไหวที่จะเห็นคำตอบที่อัพเดตของคุณในไม่ช้า แม้ว่าการหมุนเว็บไซต์ที่เหมาะสมเป็นจริงเพียง 1 คลิกไป ... ใช้https://simplytest.me/project/rulesยอมรับรุ่น 8.x-3.0-alpha2 (เริ่มต้น) และกด " launch sandbox " - ปุ่ม. หลังจากที่คุณทำคุณมีทุกอย่างที่คุณต้องการ "เร็ว" เพื่อสร้างกฎที่คุณมีอยู่ในใจ จากนั้นส่งออกและคัดลอก / วางที่ส่งออกในคำตอบของคุณที่นี่ จากนั้นแจ้งให้เราทราบ (ความคิดเห็นเพิ่มเติม?) กฎของคุณพร้อมสำหรับการตรวจสอบคุณภาพ จะดีถ้าคุณสามารถโพสต์ไว้ที่ไหนสักแห่งในวันที่จะมาถึง ... ถ้าคุณทำได้
Pierre.Vriens

สวัสดี @ Pierre.Vriens ฉันได้แก้ไขความคิดเห็นของฉันหลังจากเล่นกับกฎใน D8 อีกเล็กน้อยนี้กลายเป็นความซับซ้อนน้อยกว่าที่ฉันคิดและเป็นผลมาจากตัวเลือกการเปลี่ยนแปลงใน D8
HomoTechsual

นอกจากนี้ฉันไม่แน่ใจว่าทำไมฉันมักจะลืมเกี่ยวกับ SimplyTest.me
HomoTechsual

1

มีตัวอย่างการทำงานในคิวปัญหากฎที่โพสต์ในเดือนพฤศจิกายน 2559 ดังนั้นจึงเป็นไปได้อย่างน้อยตั้งแต่นั้นมา ดูhttps://www.drupal.org/project/rules/issues/2828422

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

langcode: en
status: true
dependencies: {  }
id: 'email_node_author_on_new_comment'
label: 'Email Node Author on New Comment - Issue 2828422'
events:
  -
    event_name: 'rules_entity_insert:comment'
description: 'Sends email to Node Author when a New Comment is added.'
tags:
  - node
  - email
  - comment
config_version: '3'
expression:
  id: rules_rule
  uuid: b5276280-d0f2-4f64-9512-06f077793c58
  conditions:
    id: rules_and
    uuid: ebf212fc-d858-417d-977d-af1be2cfd886
    conditions: {  }
  actions:
    id: rules_action_set
    uuid: 88a78280-2bca-4367-a4d3-8bbda9397c2a
    actions:
      -
        id: rules_action
        uuid: 5e6e5aed-b75f-412a-9670-48327eb58ba6
        context_values:
          to:
            - '{{ comment.entity_id.entity.uid.entity.mail }}'
          subject: 'Your content {{ comment.entity_id.entity.title }} has a new comment.'
          message: 'Your content {{ comment.entity_id.entity.title }} has a new comment.'
          reply: ''
          language: ''
        context_mapping: {  }
        context_processors:
          to:
            rules_tokens: {  }
          subject:
            rules_tokens: {  }
          message:
            rules_tokens: {  }
          reply:
            rules_tokens: {  }
          language:
            rules_tokens: {  }
        provides_mapping: {  }
        action_id: rules_send_email
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.