ルールモジュールのデータセレクターの単一のオン/オフ(ブール)チェックボックスの値をチェックする方法はないようです。 「field-MyField」=チェックまたは「field-MyField」= 1の場合、「何とか」します。ルールはこれを行うことができますか?私は何かを逃しているに違いない
何時間もの試行錯誤の末、私は問題を解決することになりました。これは私には意味がないので、説明を求めないでください。誰かが説明できれば、それは大歓迎です!
DATA COMPARISONを使用して新しい条件を設定します。次に「node:field-MyField:0」を選択します(実際には最大4つあります-node:field-MyField:1、node:field-MyField:2など)。次にCOMPARISONをEQUALSに設定します。次に、2番目のデータセレクター部分では、テキスト入力ボックスデータセレクターではなく、チェックボックスデータセレクターとして表示されます。そのチェックボックスデータセレクターをクリックして[保存]をクリックすると、ルールモジュールが正しく機能します。
壁に頭をぶつけます
ここには正しい詳細と正しくない詳細が混在しているので、それらを整理してみます。これはDrupal 7のルールの場合であり、ブールフィールドの操作に適用されます。
フィールドのブール状態をチェックする条件(true/false、yes/no、checked/unchecked)を作成するには、まずデータセレクターでフィールドにアクセスできることを確認します。 Bojanが上で述べたように、そしてそれが管理ページ自体で述べたように、
エンティティフィールドをデータセレクターに表示するには、 'エンティティにフィールドがある'(または 'コンテンツがタイプである')条件を使用する必要がある場合があります。
選択したい演算子は「等しい」です。
「データ値」フィールドには、2つのモードで値を入力できます。「直接入力モード」を使用していることを確認してください。その後、そのフィールドのTRUEを表すチェックボックスをオンにすることができます。
翻訳すると、「このフィールドはTRUEに等しいですか?」また、チェックを外したままにするか、以下の「否定」オプションを使用して否定することもできます。
「データ比較」条件を追加し、フィールド名を指定して、値として「1」を入力するだけです。フィールドがフィールドのリストに表示されない場合は、まず「エンティティにフィールドがあります」条件を追加し、そこでフィールドを選択します。次に、「データ比較」を追加します。
おそらく Rules Forms Support を使用する必要があります。
特定のフォームのフォームルールをアクティブにすると、次のような条件を使用できます:フォーム要素に値があります。この条件は、フォームがbuiltまたはvalidatedの場合に使用できます。
考慮すべき他のモジュールは エンティティルール です。
ルールの更新(修正?)バージョンで、これを行うには、データ比較条件を追加し、データセレクターで適切なフィールドを選択しますnode:field-to-check
の場合、次のステップでは、比較演算子をequals
のままにします。データ値グループには、「データ値」という名前の付いたチェックボックスがあり、ルールはこのページで送信されたチェックボックスの値と比較されます。