logo

パレット - カラフルに🎨

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

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

Scroll

コンテンツのリビジョン

15/04/2025, by Ivan

Drupal では、コンテンツが更新されるたびに新しいリビジョンを作成できます。これにより、サイト上でコンテンツが時間とともにどのように変化したかを追跡できます。

この機能は現在デフォルトで有効になっていますが、コンテンツタイプごとにリビジョンの動作を変更できます。管理 > 構造 > コンテンツタイプ > 操作 > 編集 > 公開オプション に移動し、「Create new revision(新しいリビジョンを作成)」のボックスにチェックを入れます。これにより、ノードが編集されたときに新しいリビジョンが作成されるようになります。(編集者は、個々のノードを編集する際にこの設定を上書きできます。)

リビジョンを表示・管理するには、ノードを表示しているときに「Revisions(リビジョン)」タブを使います(「View revisions(リビジョンを表示)」または「Administer content(コンテンツを管理)」権限が必要です)。Revisions タブでは、個々のリビジョンの表示、以前のリビジョンへの復元、リビジョンの削除ができます(「Administer content(コンテンツを管理)」権限、または「Revert revisions(リビジョンを復元)」と「Delete revisions(リビジョンを削除)」の両方の権限が必要です)。

リビジョンシステムの興味深い点は、復元の仕組みがどのように機能するかです。リビジョン {1, 2, 3, current} があるとします。リビジョン #2 に復元すると、#2 のコピーが作成され、それが現在のリビジョンとして設定されます。したがって、復元後は {1, 2, 3, 4, current} となり、current は #2 のクローン、#4 はそれまで現在だったリビジョンになります。

もう一つの便利な機能は、ノード編集フォームで「Create new revision(新しいリビジョンを作成)」チェックボックスの隣に表示される、リビジョンのログメッセージフィールドです。リビジョンを作成する際にこのフィールドにメッセージを入力すると、そのメッセージは該当するリビジョンとともに Revisions タブに表示されます。ノードのリビジョンを作成する際は、いつでも意味のあるメッセージを含めることをお勧めします。そうすれば、他の人(あるいは数か月後のあなた)が、以前のリビジョンの実際の内容を調べなくても、なぜノードが変更されたのか、何が変更されたのかを理解できます。本稿執筆時点ではこのフィールドは任意ですが、これを必須フィールドとして設定可能にする 機能リクエスト があります。

Revisions タブは、タイムスタンプ、変更を行ったユーザー、そして提供されていればリビジョンのログメッセージを含むテーブルに、すべてのリビジョンを一覧表示します。

Diff モジュール をインストールすると、Revisions タブを強化できます。このモジュールを使うと、2 つのリビジョン間の差分を確認できます。これがないと、各リビジョンの全内容しか表示できず、変更点を特定するのが難しくなることがあります。

データベースの node_revision テーブルには、リビジョンが無効になっている場合でも、現在のリビジョンを追跡するために、node テーブルの各レコードに対して常に 1 つのエントリが含まれることに注意してください。リビジョンが有効になっている場合は、各ノードについて node_revision に複数のエントリが表示され、現在のリビジョンとすべての過去のリビジョンの両方を表します。

コンテンツ編集時に変更を必須にすることを含む追加機能については、Content Moderation(コンテンツモデレーション) のドキュメントを参照してください。

元は https://www.drupal.org/node/320614 に基づいており、Drupal 8 向けに更新されています。