logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll

Drupal node expire と auto expire 期限切れ時の広告の掲載取り下げ

17/04/2025, by Ivan

私たちの Drupal 掲示板(分類広告板) の重要な機能の 1 つは、一定期間後に掲載を自動的に非公開にすることです。まず既製のモジュールを使い、後で Rules モジュールでこの機能を実装してみます。これには、Drupal 6 用に 2 つ、Drupal 7 用に 1 つのモジュールを見つけました:

  • Node expire – Drupal 6
  • Auto expire – Drupal 6 と 7

Drupal 6 の Node Expire

まず、Drupal 6 用の Node Expire を試しましょう:
http://drupal.org/project/node_expire
バージョン 2.06 を使います。
Node Expire モジュールをインストールして有効にします。

Drupal Node Expire

このモジュールは Drupal Rules モジュールも必要とします。

Drupal Node Expire module

これで、コンテンツタイプごとに有効期限を管理できます。コンテンツタイプ「Ad(広告)」を編集しに行きましょう:

Drupal Node Expire settings

ここで、ノードが掲示板上で公開され続ける期間を指定できます。1 週間に設定しましょう。日付を定義するには次の式を使います:

  • +1 hour、+2 hours、+n hours
  • +1 day、+2 days、+n days
  • +1 week、+2 weeks、+n weeks
  • +1 month、+2 months、+n months
  • +1 month 2 weeks 3 days 3 hours

「1 week」を使ってみましょう。

Node Expire date

では、「Ad」コンテンツタイプのノードを作成しましょう:

Expiration date set

有効期限が表示されます――現在の日付からちょうど 1 週間後です(今日は 2011-12-02 です)。

モジュールの readme.txt ファイルには、インポート可能な Rules ルールが含まれています。

Drupal Rules

readme.txt のコードをインポートウィンドウに貼り付けます:

Drupal Rules import

これで、新しいルールが表示されます。管理 UI で編集して、コンテンツタイプでフィルタリングしたり、有効期限のロジックを変更したりできます。

Drupal rule

期限切れの広告が非公開になるように、cron を設定するのを忘れないでください。

Drupal 7 の Auto Expire

Drupal Auto Expire

Auto Expire モジュールをダウンロードしてインストールします。

このモジュールは依存関係を必要としないので、すぐに使えます。他のロールに有効期限設定を編集させたい場合は、権限を設定するだけです。

Drupal permissions

サイト設定に移動して Auto Expire を選びます:

Drupal Auto Expire settings

Auto Expire の設定を見ていきましょう:

Drupal Auto Expire content types

  • Article – Drupal の基本コンテンツタイプ(他も選べます)。
  • Expire – このコンテンツタイプの有効期限機能を有効にします。
  • Days – コンテンツが公開され続ける日数。
  • Warn – 有効期限の何日前に著者へ通知を送るか。
  • Purge – 有効期限の何日後にノードを完全に削除するか。

注意:2011-12-07 時点で、Auto Expire はまだ開発中であり、本番向けではありません。

値を設定し、cron を構成すれば、広告は時間どおりに自動的に非公開になります。

次のレッスンでは、Rules モジュールを使って同様の機能を構築します。