web-dev-qa-db-ja.com

コメントがノードコンテンツタイプではないのはなぜですか?

Drupalには「特別な」コメントシステムがあります。

コメントは、Drupalノードと比較して2番目の市民です...

しかし、コアチームがデフォルトのコンテンツタイプ、コメントのブロックと表示を作成し、サイト管理者が必要に応じてコメントブロックを追加できるようにしたのはなぜですか? 「記事」と「基本ページ」のコンテンツタイプと同様に、ブロックとビューを作成できます。なぜコメントがそれほど違うのですか?

10
dayuloli

これに答えるために、私は最初に1つ理解する必要がありました:エンティティはノードではありません

エンティティタイプは、フィールドの特別なグループです。

Nodeはエンティティタイプであり、 'Title'、 'Author'などのいくつかのフィールドが必要ですおよび「発行日」。

コンテンツタイプは、Nodeのインスタンスであり、さらに多くのフィールドを定義します。したがって、「ブログ投稿」コンテンツタイプには、「 「タイトル」、「著者」、「公開日」に加えて、「フック」、「紹介」、「要約」、「関連投稿」フィールド。

ノードは、コンテンツに特化したエンティティタイプです。コメントは一般的なコンテンツとはあまりにも異なるため、ノードとして設計されていません。コメントに「タイトル」、「著者」、または「公開日」フィールドを含める必要はありません。非常に異なるため、代わりに別のEntity typeとして作成されます。

詳細については、この記事の Drupal を参照してください。

8
dayuloli

Drupal 8ノードとコメント(およびカスタムブロックとユーザーが追加したメニューリンクとユーザーと分類用語など)は両方ともエンティティです。D7では、エンティティは実際にはフィールド-それらが単に$objectそしてAPIはまったくありませんでした。 Drupal= 8エンティティには適切なCRUD APIがあります。保存、読み込みなどのクラス化されたオブジェクトです。コメントの設定はフィールドになり、すべてのフィールド化がコメント可能になりました。コメント?Commentception!それも可能ですAFAIK)。

0
user49

傍注と同様に、コアコメントエンティティの機能は必要ない場合がありますが、コンテンツタイプまたはエンティティに関連付けられたコメントまたはメモ(返信なし)の単純なリストのみが必要な場合があります。

このような場合は、システム負荷を軽減して、そのコンテンツタイプのコメントを無効にし、コメントまたはメモを格納するためのフィールドのみを使用することができます。

少なくとも2つのcontribモジュールがこの種のフィールドを提供します:

0
Interdruper