Gửi email thông báo khi một bình luận mới được đăng


15

Tôi đang sử dụng Drupal 8.1 với Quy tắc 8.x-3.0-alpha1.

Tôi muốn tạo một quy tắc để gửi email đến tác giả của một nút khi một bình luận mới được đăng lên nút này. Vấn đề là tôi đã không nhận được địa chỉ email của tác giả với các quy tắc vì bộ dữ liệu chỉ cung cấp cho tôi các giá trị này: @ node.node_route_context: nút hoặc nhận xét nhưng dưới nhận xét Tôi không tìm thấy bất cứ điều gì như bình luận: nút: tác giả. Trong Drupal 7 tôi có dữ liệu này. Tôi phải làm gì trong Drupal 8?


Trạng thái alpha của Quy tắc có thể có nghĩa là chức năng này chưa được triển khai, yêu cầu bạn phải tự vá nó.
Bojan Zivanovic

1
Cảm ơn nhưng nó là một vấn đề của mô-đun mã thông báo. Bởi vì các mô-đun khác như thông báo Thực thể không nhận được tác giả: thư cũng vậy. Mã thông báo này dường như bị hỏng.
lolhonk

Câu trả lời:


5

Cập nhật câu trả lời

Trong khi thử nghiệm điều này trên bản cài đặt mới của Drupal 8 với Rules (Alpha 2), tôi đã gặp một lỗi ngăn chặn thử nghiệm thành công này, trong khi bộ chọn dữ liệu bên dưới là chính xác thì hiện tại tôi không thể tạo lại quy tắc làm việc.

Báo cáo lỗi có tại đây: https://www.drupal.org/node/2770291 - Để tóm tắt vấn đề này Quy tắc đang mong đợi tham số TO: là một mảng và sẽ đưa ra lỗi khi chuyển mã thông báo địa chỉ email bên dưới để trả về chuỗi.

Câu trả lời ban đầu của tôi đúng với Drupal 7 tuy nhiên đối với Drupal 8, tình huống có vẻ đơn giản hơn và dựa vào một thực tế duy nhất chưa được chứng minh rõ ràng.

Trong D7, chúng ta quen thuộc với một cú pháp giống như: comment:node:author:mail

Trong D8, bộ chọn tương tự (hoạt động) là: comment.entity_id.entity.uid.entity.mail.value

Hy vọng điều này có ích, tôi để lại câu trả lời trước dưới đây trong trường hợp nó giúp được người khác.

Trả lời trước

* Nói chung với Quy tắc để sử dụng giá trị của một trường, trước tiên quy tắc phải kiểm tra cụ thể sự tồn tại của trường (tức là trường có giá trị trong ngữ cảnh quy tắc đang chạy). Nếu bạn chưa thử điều này, bạn có thể muốn thử thêm điều kiện "Thực thể có trường" vào quy tắc để kiểm tra sự tồn tại của địa chỉ email. Điều này sau đó sẽ lộ mã thông báo cho trường.

Tôi đã gặp vấn đề tương tự khi thực thi quy tắc bằng cách sử dụng quan hệ thực thể (ít nhiều là những gì bạn đang làm bằng cách tham chiếu tác giả từ nút) kiểm tra sự tồn tại của trường (trong trường hợp của bạn rất có thể là kiểm tra thực thể có tác giả (điều này sẽ mở ra quyền truy cập vào đối tượng người dùng) sau đó kiểm tra đối tượng người dùng để đảm bảo nó có địa chỉ email) đã mở mã thông báo trường có sẵn từ thực thể được tham chiếu. *


Tôi rất muốn thấy một quy tắc làm việc được bao gồm trong câu trả lời này thực sự làm những gì câu hỏi này nói về ... cho D8 . Bạn có thể cập nhật anwer của mình để đưa vào ví dụ như vậy không (sử dụng phiên bản D8 mới nhất của mô-đun Rules ? PS: từ số lượng câu hỏi của câu hỏi này, có vẻ như có những người dùng khác cũng đang tìm kiếm thứ gì đó tương tự ...
Pierre. Vriens

Chắc chắn và ý tưởng tuyệt vời, tôi sẽ mất một ít thời gian để tạo ra một trang web thử nghiệm mới để sản xuất nó.
HomoTechsual

Không thể chờ đợi để xem câu trả lời cập nhật của bạn sớm. Mặc dù việc quay lên một trang web thích hợp thực sự chỉ cách 1 cú nhấp chuột ... hãy sử dụng https://simplytest.me/project/rules , chấp nhận phiên bản (mặc định) của 8.x-3.0-alpha2 và nhấn " hộp cát khởi chạy " - cái nút. Sau khi thực hiện, bạn có mọi thứ sẵn sàng, bạn cần "nhanh chóng" xây dựng Quy tắc bạn có trong đầu. Sau đó xuất nó và sao chép / dán xuất trong câu trả lời của bạn ở đây. Sau đó cho tôi biết (nhận xét thêm?) Quy tắc của bạn đã sẵn sàng để xem xét QA. Sẽ thật tuyệt nếu bạn có thể đăng nó ở đâu đó trong những ngày tới ... nếu bạn có thể.
Pierre.Vriens

Xin chào @ Pierre. Tôi đã chỉnh sửa nhận xét của mình, sau khi chơi với Rules trên D8 một chút nữa, điều này hóa ra ít phức tạp hơn tôi nghĩ và nhiều kết quả của các bộ chọn thay đổi trong D8.
HomoTechsual

Ngoài ra, tôi không chắc tại sao tôi luôn quên về SimplyTest.me
HomoTechsual

1

Có một ví dụ hoạt động trong hàng đợi vấn đề Quy tắc được đăng vào tháng 11 năm 2016, vì vậy điều này ít nhất có thể xảy ra kể từ đó. Xem https://www.drupal.org/project/rules/issues/2828422

Đây là một phiên bản sửa đổi một chút của câu trả lời. Bạn có thể nhập nó vào trang web của bạn và xem nó trong UI để tìm hiểu cách định cấu hình chức năng này.

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.