Yeni bir yorum gönderildiğinde e-posta bildirimi gönder


15

Kurallar 8.x-3.0-alfa1 ile Drupal 8.1 kullanıyorum.

Bu düğüme yeni bir yorum gönderildiğinde bir düğümün yazarına e-posta göndermek için bir kural oluşturmak istiyorum. Sorun, veri kümesinin bana sadece bu değerleri verdiği için yazarın e-posta adresini alamadım: @ node.node_route_context: düğüm veya yorum ama yorum altında yorum gibi bir şey bulamadım: düğüm: yazar. Drupal 7'de bu veriler var. Drupal 8'de ne yapmam gerekiyor?


Kuralların alfa durumu, bu işlevin henüz uygulanmadığı anlamına gelebilir ve bu da kendiniz yama yapmanızı gerektirir.
Bojan Zivanovic

1
Teşekkürler, ancak token modülünün bir problemi gibi görünüyor. Varlık bildirimi gibi diğer modüller yazarı alamaz: posta da. Bu jeton kırık görünüyor.
lolhonk

Yanıtlar:


5

Güncellenmiş Yanıt

Bunu Kurallar (Alfa 2) ile Drupal 8'in yeni bir yüklemesinde test ederken, bunun başarılı bir testini önleyen bir hatayla karşılaştım, ancak aşağıdaki veri seçici doğru iken şu anda bir çalışma kuralı üretemiyorum.

Hata raporu burada: https://www.drupal.org/node/2770291 - Bu sorunu özetlemek için Kurallar TO: parametresinin bir dizi olmasını beklemektedir ve e-posta adresi belirtecini iletirken hata verir dize.

İlk cevabım Drupal 7 için geçerli, ancak Drupal 8 için durum daha basit görünüyor ve henüz iyi belgelenmemiş tek bir gerçeğe bağlı.

D7'de şu sözdizimine aşinayız: comment:node:author:mail

D8'de aynı seçici (çalışan): comment.entity_id.entity.uid.entity.mail.value

Bu yardımcı olur umarım, başka birine yardımcı olması durumunda önceki cevap bırakıyorum.

Önceki Cevap

* Genel olarak bir alanın değerini kullanmak için Kurallar ile kuralın öncelikle alanın varlığını özel olarak kontrol etmesi gerekir (yani alanın kuralın çalıştığı bağlamda bir değeri olduğunu). Bunu henüz denemediyseniz, e-posta adresinin varlığını kontrol etmek için kurala "Varlık alanı var" koşulunu eklemeyi deneyebilirsiniz. Bu daha sonra alan için jetonu göstermelidir.

Varlık ilişkileri kullanarak kurallar yürütürken benzer sorunlar yaşadım (bu yazarı düğümden başvurarak yaptığınız şeydir) alanın varlığını kontrol ederek (büyük olasılıkla varlığın bir yazar (bu, kullanıcı nesnesine erişimi açmalıdır), ardından e-posta adresinin bulunduğundan emin olmak için kullanıcı nesnesine karşı bir kontrol) referans verilen varlıktan kullanılabilir alan belirteçlerini açtı.


D8 için bu sorunun aslında ne yaptığını bu cevapta içeren bir çalışma kuralı görmek isterim . Anwer'inizi böyle bir örneği içerecek şekilde güncelleyebilir misiniz ( Kurallar modülünün en son D8 sürümünü kullanarak ?) PS: bu sorunun upvotes sayısından, benzer bir şey arayan başka kullanıcılar da var gibi görünüyor ...
Pierre. Vriens

Elbette ve harika bir fikir, Bunu üretmek için yeni bir test sitesini açmak biraz zaman alacak.
HomoTechsual

Güncellenmiş cevabınızı yakında görmek için sabırsızlanıyorum. Uygun bir siteyi döndürmek gerçekten sadece 1 tıklama uzakta olsa da ... https://simplytest.me/project/rules kullanın , 8.x-3.0-alpha2'nin (varsayılan) sürümünü kabul edin ve " başlat sanal alanına " basın - buton. Bunu yaptıktan sonra, aklınızdaki Kuralı "hızlı bir şekilde" oluşturmak için ihtiyacınız olan her şeye sahipsiniz. Ardından dışa aktarın ve bu dışa aktarmayı bu cevabınıza kopyalayın / yapıştırın. O zaman kuralınızı KG incelemesi için hazır olduğunu bana bildirin (ekstra yorum?). Önümüzdeki günlerde bir yere gönderebilirsen iyi olur ... yapabilirsen.
Pierre.Vriens

Merhaba @ Pierre.Vriens Yorumumu düzenledim, D8'de Kurallar ile biraz daha oynadıktan sonra, bu düşündüğümden daha az karmaşık ve daha çok D8'deki seçicilerin bir sonucu oldu.
HomoTechsual

Ayrıca neden SimplyTest.me'yi her zaman unuttuğumdan emin değilim
HomoTechsual

1

Kural sorunu kuyruğunda Kasım 2016'da yayınlanan çalışan bir örnek var, bu yüzden en azından o zamandan beri mümkün oldu. Bkz. Https://www.drupal.org/project/rules/issues/2828422

İşte bu cevabın biraz değiştirilmiş bir versiyonu. Bu işlevselliği nasıl yapılandıracağınızı öğrenmek için sitenize alabilir ve kullanıcı arayüzünde bu siteye bakabilirsiniz.

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.