2

Drupal 7.18 では、インポートされたフィード アイテムからノー​​ドを作成する Feeds および Feed News モジュールを使用しています。データベースが大きくなりすぎたため、4 週間以上経過したフィード アイテムを完全に削除したいと考えています。特定のフィードを編集し、[アイテムの削除] タブを使用してフィードからすべてのアイテムを手動で削除できますが、4 週間以上前のアイテムのみを削除し、アイテムの有効期限ルールを設定したいと考えています。それを行うための設定が見つかりませんでした。

4

4 に答える 4

0

これを自分で探していて、1か月以上前の記事のすべてのニッドを収集し、それらをnode_delete_multiple($ nids) に渡して、カスタムモジュールのhook_cron()に配置するビューを作成し、次のコマンドで実行できるようにします。 cron。以下は私のhook_cron()関数のコードです。

//remove old articles from site.
$old_articles = views_get_view_result('articles_to_delete');
foreach($old_articles as $article){
  $nids_to_delete[]=$article->nid;
}
$num_articles = count($nids_to_delete);
if($num_articles > 0){
  node_delete_multiple($nids_to_delete);
  watchdog('city_sync', '%num old articles were deleted in cron run.', array('%num' => $num_articles), WATCHDOG_NOTICE);
}
于 2013-01-29T19:58:43.693 に答える
0

Develモジュールをインストールしました。DevelGenerateモジュールがあります。[Generatecontent]メニューで、さまざまなコンテンツタイプの生成を選択でき、[新しいコンテンツを生成する前に、特定のコンテンツタイプのすべてのコンテンツを削除する]オプションを選択できます。このオプションをチェックして、新しいノード数をゼロに設定しました。そのため、Devel Generateモジュールはすべてのノード(フィードアイテム)を削除しましたが、新しいノードは作成しませんでした。

于 2013-01-31T00:19:00.457 に答える
0

Aggregator モジュール (コア内ですが、デフォルトでは非アクティブ化されています) は実際にそれを行います: フィード項目を集約しますが、新しいノードは作成しません。

その 4 週間の期間 (カスタム ビューなど) に使用する実際のノードを作成する必要がある場合は、ルール モジュールを使用してpublished状態を自動的に非公開に設定することができます$today - $datepublished > 4 weeks

于 2013-01-27T15:45:25.533 に答える