ルールアクションでフィールド値を変更する方法


20

フィールドの値を変更できるルールアクションを設定しようとしています。Nodeのデータタイプでアクションセットを作成しました。ルールアクションを作成する場合、デフォルトのすべてのDrupalノードフィールドにアクセスできますが、フィールドはありません。

これは単に不可能ですか?これを機能させるには他のモジュールが必要ですか?

回答:


15

最初に、そのノードにフィールドが存在するかどうかを確認する条件を追加する必要があります。そうしないと、アクションで使用できません。これを行うには特定の条件があります。


1
また、明らかに条件にアクセスするには、ルールセットである必要があります。
ジョレン

6

「Entity has field」(または「content is type」)条件を使用すると、アクション「データ値の設定」でのデータ選択でフィールドが使用可能になります。


2

前の両方の答えに矛盾しないように、IMOは両方とも質問の重要な部分を失います(無視しますか?)、それは「...アクションセットを作成しました...」です。確かに、解決策の一部は、 " Entity has field"(jcarballoからの回答のように)です。ただし、ルールアクションセットの設計により、ルール条件を含めることはできません。そのため、この質問への回答を完了するには、次のいずれかが必要です。

上記を念頭に置いて、(たとえばEntity has field、値を設定するフィールドに関連する)ルール条件も追加する場合、フィールドの「データ値を設定する」などのルールアクションを作成できるはずです。。そして、Entity has fieldこのフィールドを参照する他のルール条件の前に、その条件を追加してください(ルールにそのような条件がある場合)。

「データ比較」条件を追加する場合など、ルールUIでも言及されています。「データセレクターを使用すると、ルールで利用可能なデータをドリルダウンできます。データセレクターにエンティティフィールドを表示するには、「エンティティがフィールドを持っている」(または「コンテンツはタイプ」)という条件を使用する必要がある場合があります

このEntity has field状態の重要性を説明するビデオチュートリアルについては、「データタイプとデータ選択」、特に13:30から17:30の間に表示される内容を参照してください。


再:その2番目のオプションは、理解しているとおり、ビューの一括操作(VBO)で使用可能なアクションとして、ルールセットではなくアクションセットのみを使用できます。どうやらこれは、ビューが、処理するエンティティがユーザーが望む正当なものであることを確認する負担を負うことになっているためです(ビューフィルター[通常および/またはコンテキスト]を使用し、目的のエンティティのチェックボックスをチェックすることで処理するため)、条件は必要ありません。しかし、これにより、piggybankのキーがpiggybank 内に効果的に配置されます。したがって、条件付き規則は、医師が注文したものである可能性があります。
ジョエルMMCC
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.