web-dev-qa-db-ja.com

ノード上の匿名ユーザーへの通知

モジュールまたはなんらかの回避策を探しています。ルールが関係します。これにより、匿名ユーザーは自分が作成したノードの新しいコメントをサブスクライブできます。私のユーザーシナリオは次のとおりです。

  1. 匿名ユーザーが新しいフォーラムトピックを投稿したい
  2. 「新しいフォーラムトピックを追加」ボタンをクリックする
  3. URL node/add/forumtopicで、通常のフォームで表示されます
  4. フォームには、「コメントがスレッドに投稿されたときにメールを受け取りたい」というラベルが付いたチェックボックスが付いたメールフィールドがあります。
  5. メールを入力してチェックボックスをオンにします-はい、メール通知を受け取ります
  6. 彼女はフォームを送信し、自分のスレッドにコメントが投稿されると、コメントへのリンクとスレッドの登録解除を可能にするリンクが記載された通知メールを受け取ります。

さまざまな通知モジュールが比較される this nice writeup on groups.drupal.org を見てきましたが、私が探している機能を提供しているようには見えません。

必要な機能を提供する Comment Notify をインストールしましたが、ノードではなく、コメントのみです。

Watcher をインストールしてみましたが、開発の初期段階であり、バグが多いようです。

これは非常に一般的なシナリオのように思えます-この機能を実装するための推奨される方法は何ですか?どんな助けでも大歓迎です。

10
benjamin_dk

私はおそらくこれを次のルールベースのセットアップで解決するでしょう:

1)匿名の投稿者用のカスタムエンティティを作成します。メールのテキストフィールドと、作成したノードのエンティティ参照フィールドのみを使用します。カスタムエンティティの作成に関するかなり良い記事を以下に示します。 http://www.istos.it/blog/drupal-entities/drupal-entities-part-3-programming-hello-drupal-entity

そして、ここにDrupal.orgがあります: http://drupal.org/node/102642

2)投稿者が匿名であるかどうかを確認する「ノード->新しいコンテンツを保存した後」のルールを作成し、そうである場合は、ユーザーの電子メールと作成されたノードへの参照を使用して、新しい匿名の投稿者エンティティを作成します。

3)「コメント->新しいコメントを保存した後」のルールを作成し、「プロパティによるエンティティのフェッチ」アクションを実行し、匿名の投稿者エンティティの後にメールを送信します。

あなたが理解する必要がある唯一のトリックは、エンティティをフェッチしてそれらのフィールドにアクセスする際のルールをいかにしてプレイするかです。エンティティのフィールドにアクセスするにはエンティティのタイプを確認する必要があるため、このフロー全体を実現するルールコンポーネントを作成する必要があります。これは「条件」で発生するため、「アクション」の後に実行することはできません。ここで「プロパティによるエンティティのフェッチ」の魔法が起こります。

したがって、基本的には、取得したエンティティで実行する必要があることを行うルールコンポーネントを作成する必要があります。

これは間違いなくあなたが達成する必要があることを達成する唯一の方法ではありませんが、私はルールの無限の力を強く信じているので、それを使って問題を解決するのが好きです。 :)

1

MailChimpを使用してこの問題を解決する、私が作成したこの新しいモジュール mailchimp_subscriptions を試してみてください。

フィードバックは大歓迎です!すぐにフルモジュールにプロモートする予定です。

0
askibinski