web-dev-qa-db-ja.com

「ユーザーのステータスの更新」アクションをビューに追加するにはどうすればよいですか?

ユーザーステータスを変更するために、Viewsモジュールでユーザーリストを作成したいと思います。 Views Bulk Operationsモジュールを使用していますが、Change statusまたはActive userアクションがありません。

ワンクリックでビューテーブルリストのユーザーを有効(またはステータスを変更)するにはどうすればよいですか?

1
omiti

独自のCookieをロールして、「質問またはステータスの変更」などのVBO操作を自分で作成する別のアプローチ。その方法の詳細については、以下をお読みください...

ステップ1

Rules モジュールを使用して、必要な可能性のあるすべてのルール条件を含むルールコンポーネントを作成し、ルールアクションを使用してステータスまたはアクティブユーザーを変更します、このルールコンポーネントのパラメーターとして指定されたユーザーの場合。

以下は、それに使用できるそのようなルールコンポーネントです(ルールエクスポート形式)。

{ "rules_change_status_of_a_blocked_user_to_active" : {
    "LABEL" : "Change status of a blocked user to active",
    "PLUGIN" : "rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "USES VARIABLES" : { "user_to_activate" : { "label" : "User to be activated", "type" : "user" } },
    "IF" : [ { "user_is_blocked" : { "account" : [ "user-to-activate" ] } } ],
    "DO" : [ { "user_unblock" : { "account" : [ "user-to-activate" ] } } ]
  }
}

それについていくつかの詳細:

  • ユーザーエンティティをパラメーターとして使用します。
  • ルール条件は、処理されるユーザーが実際にブロックされていることを確認します(activeユーザーのステータスをactiveに変更しようとしても意味がありません)。
  • ルールアクションは、ユーザーのステータスをactiveに変更します。

ルールUIを有効にしている場合は、上記のルールコンポーネントを自分のサイトにインポートするだけです。インポートが完了したら、次のように単体テストできます。

  • ルールコンポーネントの前にある「実行」リンクを使用します。
  • 次の画面で、「User to beactivated」の値を入力する必要があります。 Switch to the direct input mode 下部近くのボタン。
  • 次に、ブロックされたユーザーのuidUser identifierの値として入力し、 Execute その下のボタン。
  • (ブロックされた)ユーザーは、そうすることでactiveになるはずです(これにより、このルールコンポーネントのユニットテストが完了します)。

ステップ2

「ステータスまたはアクティブユーザーの変更」などのVBOアクションを実行できるようにするユーザーの適切なビューを作成します。次に、そのビューを ビューの一括操作 を使用するビューに変換し、「 ルールを使用してVBOビューのカスタム一括操作を作成する方法 」に記載されている手法を使用します。 。これにより、前のステップ1のルールコンポーネントを使用できるようになります。

チュートリアル

アイデアを得るには、 VBOでのルールコンポーネントの使用 "についてのビデオを見てください。これは、(唯一の)1パラメータを持つルールコンポーネントを使用しています。さらに必要な場合は、後続の"- 複数のパラメーターを持つルールコンポーネントを使用 "ビデオ。

注意:数千人のユーザーのように一度に処理することは、非常に困難です(メモリ要件など)。そのため、 " VBO設定の詳細 "についてのビデオもご覧になることをお勧めします... VBOを使用してそれらを一度にすべて処理するように誘惑される前に...

1
Pierre.Vriens

エンティティフォームとルールがある場合は、ユーザーへのエンティティ参照を使用してエンティティフォームを作成し、優先するアクションに別のフィールドを追加し、ルールを使用してアクションを実行します。

2
Niall Murphy

[〜#〜] vbo [〜#〜] の有効なビューの結果を処理して(== --- ==) Rules、ただし、ルールは2つのルールアクションを実行します。

  • 処理するエンティティ(ノードなど)のVBOリストをロードします。
  • ループを追加して、ビューの結果に含まれるエンティティ(ノードなど)ごとにルールアクションを実行します。実行する実際のルールアクションは、「ステータスの変更またはアクティブなユーザーアクション」です(質問のとおり)。

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

1
Pierre.Vriens