web-dev-qa-db-ja.com

フィールドオプションに基づいてノードを非公開にする

ユーザーがフィールドの選択リストからオプションを選択した場合にノードを非公開にする方法はありますか?

都市のリストがあるフィールドがあります。たとえば、ユーザーがロンドンなどの特定の都市を選択すると、ノードは自動的に非公開になり、モデレートできるようになります。

ルールを試してみましたが、ルールをテストするたびに何も起こらないので、ルールに問題があるか、もっと簡単な方法があると思いますか?

2
ipwa

また、hook_node_presave()をフックして、フィールドの値を確認することもできます...いいえ?

mymodule_node_presave($node) {
if($node->yourfield[.....]['value'] == 'London') {
$node->state = '0';
}
}
7

「データ比較」を行う前に、「エンティティにフィールドがある」かどうかを最初にテストしましたか?

フィールドを比較するときは、最初にエンティティがルールを取得するためのフィールドを持っていることを確認する必要があります。コンテンツタイプなどの基本的なノード属性を比較する場合は、この手順を省略できます。

ここに例があります...

enter image description here

7
Brent