web-dev-qa-db-ja.com

プロファイルのチェックボックス項目に基づいてユーザーにロールを割り当てるルールを作成するにはどうすればよいですか?

私はDrupalにかなり新しいです。 Profile2 を使用しているため、ユーザーはそこで独自のユーザーロールを選択できます。だから私はいくつかのチェックボックス項目のようなプロフィールページを持っていると言います

  • 自動車
  • コンピューター
  • 庭園

ルールに条件またはデータ比較を追加するにはどうすればよいですか。たとえば、Automotiveが選択/チェックされている場合、ユーザーロールをそのロールに設定しますか?また、複数のロールを取得するには、複数のチェックボックスを選択できる必要があります。

助言がありますか?

3
Ryan Hepple

パート1-単一の選択と関連する役割で機能させる

次のようなルールを作成します。

  1. ルールイベント:ユーザープロファイルを保存した後。
  2. ルール条件(両方の条件を満たす必要があります):

    • エンティティにはフィールドがあります(フィールドは(たとえば) "Automotive"に対応します)。
    • 「自動車が選択/チェックされている」かどうかを確認するためのデータ比較。
  3. ルールアクション::ユーザーに役割を割り当てます(「自動車」に関連する役割の場合)。

割り当てられるチェックボックスとロールの可能な組み合わせごとに同様のルールを作成できます。または、パート2の詳細に従って、パート1のルールをさらに拡張し、考えられるすべての組み合わせに対して単一のルールを作成します。

パート2-他の可能な組み合わせで機能させる

他の可能な組み合わせでも機能するようにするには、また、ルールアクションに「条件」を含めることができないため、基本的に2つの方法があります。

  • 可能な組み合わせごとに(パート1のように)同様のルールを作成します。
  • 条件付きルール モジュールを使用して、上記のルールのRules Actionを拡張し、条件付き(if/else)ofSwitchロジック。注意:このモジュールはD7のベータリリースのみですが、8K以上のサイトで使用されています(そのため、かなり堅牢なモジュールのように見えます)。
3
Pierre.Vriens