したがって、Drupalには「特別な」コメントシステムがあります。
ノードと比較して、コメントはDrupalの2等市民です...
しかし、コアチームがデフォルトのコンテンツタイプ、コメントのブロックと表示を作成し、サイト管理者が必要に応じてコメントブロックを追加できるようにしたのはなぜですか。「記事」および「基本ページ」のコンテンツタイプと同様に、ブロックとビューを作成できます。なぜコメントがそれほど違うのですか?
したがって、Drupalには「特別な」コメントシステムがあります。
ノードと比較して、コメントはDrupalの2等市民です...
しかし、コアチームがデフォルトのコンテンツタイプ、コメントのブロックと表示を作成し、サイト管理者が必要に応じてコメントブロックを追加できるようにしたのはなぜですか。「記事」および「基本ページ」のコンテンツタイプと同様に、ブロックとビューを作成できます。なぜコメントがそれほど違うのですか?
回答:
これに答えるために、私は最初に1つのことを理解する必要がありました:エンティティはノードではありません。
エンティティタイプは、フィールドの特別なグループです。
ノードはエンティティタイプであり、「タイトル」、「作成者」、「公開日」などのいくつかのフィールドが必要です。
コンテンツタイプは、さらに多くのフィールドを定義するノードのインスタンスです。したがって、「ブログ投稿」コンテンツタイプには、「タイトル」、「作成者」、「公開日」に加えて、「フック」、「紹介」、「要約」、「関連投稿」フィールドを含めることができます。
ノードは、コンテンツに特化したエンティティタイプです。コメントは一般的なコンテンツとはあまりにも異なるため、ノードとして設計されていません。コメントに「タイトル」、「著者」、または「公開日」フィールドを含める必要はありません。非常に異なるため、代わりに別のエンティティタイプとして作成されます。
詳しくは、Drupalに関するこの記事を参照してください。
Drupal 8では、ノードとコメント(およびカスタムブロックとユーザーが追加したメニューリンクとユーザーおよび分類用語など)は両方ともエンティティです。D7では、エンティティは実際にはフィールドのバンドルのためだけのものでした-私はそれらが単純で$object
、APIがまったくなかった時期をまだ覚えています。Drupal 8では、エンティティに適切なCRUD APIがあります。それらは、保存、読み込みなどのクラス化されたオブジェクトです。また、コメント設定はフィールドになり、フィールド化可能なものはすべてコメント可能になります。可能性に心が揺さぶられます(コメント付きのコメントですか?Commentception!それは可能なAFAIKです)。
傍注と同じように、コアコメントエンティティの機能は必要ない場合がありますが、コンテンツタイプまたはエンティティに関連付けられたコメントまたはメモ(返信なし)の単純なリストだけが必要な場合があります。
このような場合は、システム負荷を軽減して、そのコンテンツタイプのコメントを無効にし、コメントまたはメモを保存するためのフィールドのみを使用することができます。
少なくとも2つのcontribモジュールがこの種のフィールドを提供します: