ユーザーがサイトにサインアップするときに、いくつかのユーザーポイントを追加する必要があります。 Rules モジュールを使用して、私はすでにその機能を提供しました。しかし問題は、50人のメンバーがサインアップした後にポイントを少し減らすことです。
では、登録されている人を区別するための条件を実装するにはどうすればよいですか。
Sign-up (first 50 = 20,000)
を意味します。3000 points to user signup
を追加します。誰か提案?
これまでの合計ユーザー数をusersテーブルから取得する必要があります。これを行うには、db_query("SELECT COUNT(*) FROM users"); //[not tested]
を記述しなければならないphpコードで条件を使用できます。
結果が既存のユーザーの数を取得する場合。ポイントを割り当てるためにアクションに進むためにtrue/falseを返すことができます。
動作したかどうか教えてください。
以下でさらに詳しく説明するように、 Rules を Views Bulk Operations モジュールと組み合わせて使用することで、この作業を行うことができます。
Views Bulk Operations モジュールを使用して、すべてのユーザーのビューを作成します。このビューにVBOフィールドを追加します。ユーザーごとにuid
のようなフィールドを含めるだけです(他のフィールドは必要ありません)。考慮したいユーザーごとに正確に1行を取得するようにしてください(例:count user/1
?)。
ルール条件「VBOビューによって返される結果の数を確認する」を使用して最初のルールコンポーネントを作成します。そして、前のステップで作成したVBOビューを選択します。結果の数が50以下の場合は、(そのルールコンポーネントで)ルールアクションを実行して、20,000ポイントを付与します(現在のルールがすでに行っているのと同様)。
手順2のルールコンポーネントと同様の2番目のルールコンポーネントを作成しますが、このコンポーネントのロジックは次のようになります。結果の数が51以上の場合は、(そのルールコンポーネントで)ルールアクションを実行して3,000を付与します。ポイント。
次のように既存のルールを置き換えます。
完了!