새 댓글이 게시되면 이메일 알림 보내기


15

규칙 8.x-3.0-alpha1과 함께 Drupal 8.1을 사용하고 있습니다.

새 주석이이 노드에 게시 될 때 노드 작성자에게 전자 메일을 보내는 규칙을 만들고 싶습니다. 문제는 데이터 세트에 @ node.node_route_context : node 또는 comment 값만 제공하기 때문에 규칙이있는 작성자의 전자 메일 주소를 얻지 못했지만 주석 아래에서는 comment : node : author와 같은 것을 찾지 못했습니다. Drupal 7에는이 데이터가 있습니다. Drupal 8에서해야 할 일은 무엇입니까?


규칙의 알파 상태는이 기능이 아직 구현되지 않았으므로 직접 패치해야한다는 의미 일 수 있습니다.
Bojan Zivanovic

1
고맙지 만 토큰 모듈의 문제가되는 것은 솔기입니다. 엔티티 알림과 같은 다른 모듈은 author : mail도 얻지 못하기 때문에. 이 토큰이 고장난 것 같습니다.
lolhonk

답변:


5

업데이트 된 답변

Drupal 8 with Rules (Alpha 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 버전 사용 (예를 포함하도록 anwer를 업데이트 할 수 규칙 ? 모듈을 추신 :이 질문의 upvotes의 수에서, 다른 사용자도 ... 유사한 무언가를 찾고 있다는 것을 보인다
피에르. Vriens

물론 좋은 아이디어입니다. 새로운 테스트 사이트를 만들려면 약간의 시간이 걸립니다.
HomoTechsual

업데이트 된 답변을 곧 기다릴 수 없습니다. 적절한 사이트를 회전시키는 것은 실제로 단 한 번의 클릭으로 ... https://simplytest.me/project/rules 사용 하지만 (기본) 버전 8.x-3.0-alpha2를 수락하고 "start sandbox "를 누르십시오. 단추. 그 후에, 당신은 당신이 염두에 둔 규칙을 "신속하게"구성하는 데 필요한 모든 것을 갖추게됩니다. 그런 다음 내 보낸 다음 해당 답변을 내 보낸 사본을 여기에 복사 / 붙여 넣기하십시오. 그런 다음 규칙이 QA 검토 준비가되었음을 알려주세요 (추가 의견이 있으십니까?). 다음 날 어딘가에 게시 할 수 있다면 좋을 것입니다 ... 가능하다면.
Pierre.Vriens

안녕하세요 @ Pierre.Vriens D8에서 Rules로 조금 더 연주 한 후, 내 의견을 편집했습니다. 이것은 조금 복잡하지 않으며 D8에서 변경된 선택기의 결과가 더 복잡하다는 것이 밝혀졌습니다.
HomoTechsual

또한 왜 SimplyTest.me에 대해 항상 잊었는지 모르겠습니다.
HomoTechsual

1

2016 년 11 월에 게시 된 규칙 문제 대기열에 실제 예제가 있으므로 그 이후로는 가능했습니다. 참조 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.