web-dev-qa-db-ja.com

ルールを使用して非アクティブなユーザーを整理する-これは機能しますか?

私はDrupalに比較的慣れており、章のネットワーク用に新しいWebサイトを開発するときに学んでいます。言うまでもなく、それはかなりの挑戦でした:)

私が必要とした機能の1つは、非アクティブなユーザーをプルーニングする機能でした。これは現在のシステムにあり、会員数を正確に保ち、​​アクティブなメンバーだけがチャプターにアクセスできることを知っていることでメンバーがより「安心」できるようにするのと同様です。

これを行うためのモジュールがいくつかありましたが、それらはすべてDrupal 6の場合、またはDrupal 7.の場合のみ開発モジュールがありました。

私はこのリンクを見つけました: https://drupal.org/node/158271

それに続いて、ルールを使用して自分の「プルーンユーザー」を設定しました。しかし、私はこれを開発段階でテストする方法がわからないので、ライブバージョンに移行するときにメンバーシップを台無しにして誤ってメンバーシップを台無しにしたくありません。

私がしたことは次のとおりです:

以下のコンポーネントをセットアップします。

  1. ユーザーが30日間非アクティブであり、次のレターを30日後にスケジュールすることを記載したメールを送信する

  2. ユーザーが60日間非アクティブであり、25日後に次の手紙をスケジュールすることを記載したメールを送信する

  3. ユーザーが整理される危険性があることを示すメールを送信します。アカウントを維持し、ユーザーをブロックするためにログインする必要があります。

  4. ユーザをブロックする

次のルールを設定します。

  1. 非アクティブなユーザー:ユーザーがログインしたら、現在スケジュールされているすべてのルールを削除し、コンポーネントの評価を非アクティブにして30日間のレターを設定します。

  2. ログインしない:ユーザーアカウントが最初に承認されたときに、コンポーネントの評価を30日間の非アクティブのレターに設定します。

Ithinkこれは、ユーザーが最初にサインアップしたときに、非アクティブなユーザーレターがスケジュールされることを意味します。ログインするたびに、30日後に30日の文字にリセットされます。彼らがログインしない場合、30日以内に最初の手紙が届き、2番目の手紙がスケジュールされます...整理されるまで。ログインすると、すべてがリセットされます。

これは、すべてのユーザーがスケジュールされた非アクティブなユーザーレタータスクを実行することを意味します-これがシステムの処理速度を低下させすぎるかどうかはわかりませんか?

また、これが聞こえる場合right-想定どおりに動作し、誤って動作しないことを確認するためにテストするにはどうすればよいですかユーザーをブロックすることはできませんか?

最後にもう1つ、「ブロック」され、一定期間メンバーになったユーザーを自動的に削除するにはどうすればよいですか(承認されていないばかりの新しいメンバーが誤って「プルーニング」されないようにするためですか? )

私がこれを完全にめちゃくちゃにした場合は、遠慮なく教えてください!私が言ったように、私はこれで本当に新しいです、そして私が一緒に行くにつれてそれをまだ理解しています...あなたが与えることができるどんな助けにも感謝します!

3
Heather

あなたのソリューションは「うまくいく」かもしれませんが、別のアプローチは [〜#〜] vbo [〜#〜] 有効なビューの結果を処理することです ルール、ルールは2つのルールアクションを実行します。

  • 削除の候補となるユーザーのVBOリストをロードします。
  • ループを追加して、ビューの結果に含まれるユーザーごとに、ルールアクション「ユーザーの削除」を実行します。

詳細については、チュートリアル「 VBOが有効なビューの結果をルールで処理する方法 」を参照してください。

利点は、最初に手動で実行した場合、削除されるユーザーを確認できることです(単にビューの結果を参照することにより)。問題がなければ、毎日(ルール自体の最後に、最初に手動でルールをトリガーした後で)スケジュールを変更して自動化します。

2
Pierre.Vriens