web-dev-qa-db-ja.com

単一のオン/オフのチェックボックスがオンになっているかどうかを確認するにはどうすればよいですか?

ルールモジュールのデータセレクターの単一のオン/オフ(ブール)チェックボックスの値をチェックする方法はないようです。 「field-MyField」=チェックまたは「field-MyField」= 1の場合、「何とか」します。ルールはこれを行うことができますか?私は何かを逃しているに違いない

8
user785179

何時間もの試行錯誤の末、私は問題を解決することになりました。これは私には意味がないので、説明を求めないでください。誰かが説明できれば、それは大歓迎です!

DATA COMPARISONを使用して新しい条件を設定します。次に「node:field-MyField:0」を選択します(実際には最大4つあります-node:field-MyField:1、node:field-MyField:2など)。次にCOMPARISONをEQUALSに設定します。次に、2番目のデータセレクター部分では、テキスト入力ボックスデータセレクターではなく、チェックボックスデータセレクターとして表示されます。そのチェックボックスデータセレクターをクリックして[保存]をクリックすると、ルールモジュールが正しく機能します。

壁に頭をぶつけます

2
user785179

ここには正しい詳細と正しくない詳細が混在しているので、それらを整理してみます。これはDrupal 7のルールの場合であり、ブールフィールドの操作に適用されます。

フィールドのブール状態をチェックする条件(true/false、yes/no、checked/unchecked)を作成するには、まずデータセレクターでフィールドにアクセスできることを確認します。 Bojanが上で述べたように、そしてそれが管理ページ自体で述べたように、

エンティティフィールドをデータセレクターに表示するには、 'エンティティにフィールドがある'(または 'コンテンツがタイプである')条件を使用する必要がある場合があります。

選択したい演算子は「等しい」です。

「データ値」フィールドには、2つのモードで値を入力できます。「直接入力モード」を使用していることを確認してください。その後、そのフィールドのTRUEを表すチェックボックスをオンにすることができます。

翻訳すると、「このフィールドはTRUEに等しいですか?」また、チェックを外したままにするか、以下の「否定」オプションを使用して否定することもできます。

6
ezrock

「データ比較」条件を追加し、フィールド名を指定して、値として「1」を入力するだけです。フィールドがフィールドのリストに表示されない場合は、まず「エンティティにフィールドがあります」条件を追加し、そこでフィールドを選択します。次に、「データ比較」を追加します。

3
Bojan Zivanovic

おそらく Rules Forms Support を使用する必要があります。

特定のフォームのフォームルールをアクティブにすると、次のような条件を使用できます:フォーム要素に値があります。この条件は、フォームがbuiltまたはvalidatedの場合に使用できます。

考慮すべき他のモジュールは エンティティルール です。

0
kenorb

ルールの更新(修正?)バージョンで、これを行うには、データ比較条件を追加し、データセレクターで適切なフィールドを選択しますnode:field-to-checkの場合、次のステップでは、比較演算子をequalsのままにします。データ値グループには、「データ値」という名前の付いたチェックボックスがあり、ルールはこのページで送信されたチェックボックスの値と比較されます。

0
Zxaos