https://groups.drupal.org/node/240678#comment-78254 で説明されている方法を試してみましたが、それが正確に必要なものではありません。だから私はそれを少し変更しました:
「コンテンツの非公開」という名前を付けます
設定/変数:
...次の画面...ルールを追加
保存する
条件(1):
条件(2):
行動:
/admin/config/workflow/rules
を使用
名前= "非公開ルール"
保存する
条件:
行動:
しかし、日付フィールドはありません。
私は多くの方法を試しましたが、何も機能しないようです。AutoExpireなどの他のモジュールを使用したくありません。
これを機能させるための提案はありますか?
Rules Schedulerを調べましたか?ルールを作成し、コンテンツを非公開にするコンポーネントを作成し、元のルールのルールスケジューラをアクションとして「公開日」の50日後にコンポーネントを実行するという点で、プロセスは似ています。以下は、X時間後に公開される予定のノードのビデオです。フォローできます: http://www.youtube.com/watch?v=OgRKLXRbPX8 。
以下の手順で説明するように、_ Rules モジュールをRules Scheduler
(そのサブモジュール)とともに使用します。これらの手順では、your-content-type
ではなくcontent type = article
を使用します。
作成するルールComponentは次のとおりです(ルールエクスポート形式では、コピーと貼り付けを介して独自の環境にインポートするだけです):
{ "rules_unpublish_a_node" : {
"LABEL" : "Unpublish a node",
"PLUGIN" : "action set",
"OWNER" : "rules",
"REQUIRES" : [ "rules" ],
"USES VARIABLES" : { "node" : { "label" : "node", "type" : "node" } },
"ACTION SET" : [ { "node_unpublish" : { "node" : [ "node" ] } } ]
}
}
作成するRuleを Rules エクスポート形式で示します(コピーアンドペーストで独自の環境にインポートするだけです)。 :
{ "rules_unpublish_nodes_after_50_days" : {
"LABEL" : "Unpublish nodes after 50 days",
"PLUGIN" : "reaction rule",
"ACTIVE" : false,
"OWNER" : "rules",
"REQUIRES" : [ "rules", "rules_scheduler" ],
"ON" : { "node_insert" : [] },
"IF" : [
{ "node_is_of_type" : { "node" : [ "node" ], "type" : { "value" : { "article" : "article" } } } }
],
"DO" : [
{ "schedule" : {
"component" : "rules_unpublish_a_node",
"date" : "+50 days",
"identifier" : "Unpublish node with node ID [node:nid]",
"param_node" : [ "node" ]
}
}
]
}
}
上記のルールは、前のステップのRules Componentを参照していることに注意してください。これはルールのエクスポート形式であり、コピーアンドペーストを介して独自の環境にインポートするだけです(コンテンツタイプのマシン名に合わせてarticle
を調整した後)。
最初にノードが作成された場合にどうなるかを指定しませんでしたが、「公開」ではなく「非公開」として指定しました。そして後でそのようなノードで更新され、「非公開」から「公開」に変更されます。その場合に何を行いたいかに応じて、ルールイベントまたはルール条件、あるいはその両方をさらに絞り込む必要がある場合があります(例:「コンテンツが公開されている」を追加します)。