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


8

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


これを行うと、カスタムPHPを使用しても機能しません:echo([node:field-MyField] == 1);。PHPが機能しているのは、trueを返すだけで機能するからです。だから何が起こっているのですか???!?
user785179 2012

ええと、カスタムPHPではトークンを使用できないことがわかりました。
user785179 2012

回答:


6

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

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

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

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

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

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


説明してくれてありがとう。私はこのようなものに再度触れる必要はありませんでしたが、あなたの説明は理にかなっています。他の人の役に立つことを願っています。
user785179

3

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


データ値に1を入力すると、次のエラーメッセージが表示されます。パラメーター値のデータセレクター1が無効です。他のアイデアは?明確にするために、フィールドを比較するためのデータはnode:field-MyFieldです。比較はEQUALSに設定されています。データ値が1に設定されている
user785179

2

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

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

壁に前髪頭


0

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


0

ほとんどの場合、ルールフォームサポートを使用する必要があります。

特定のフォームのフォームルールをアクティブにすると、次のような条件を使用できますフォーム要素に値があります。フォームがされているときに、この状態は、いずれかを使用することができます建て検証します

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.