web-dev-qa-db-ja.com

コンテンツタイプとカスタムブロックタイプ

サイトのコンテンツを作成してどこかに配置する方法を理解しようとしています。比較したい2つの方法は次のとおりです。

コンテンツタイプ

  • カスタムコンテンツタイプを作成する(フィールド付き)
  • コンテンツのインスタンスを作成する
  • このコンテンツタイプのビューを作成する
  • ビューからブロックを作成
  • リージョンにブロックを配置

カスタムブロックタイプ

  • カスタムブロックタイプの作成(フィールドあり)
  • カスタムブロックのインスタンスを作成して領域に配置する

各アプローチの長所と短所は何ですか?

シナリオの例として、同じコンテンツタイプ(製品の機能など)の4つのセクションがあるホームページがあるとします。これらの4つのセクションは、ページの下に注文する必要があります。このページには他のコンテンツがあります。

これまで見てきたことから、カスタムブロックは、セットアップする前に必要な労力が少なく、ビューは必要ありません。また、ブロックレイアウトページ(ドラッグ/ドロップ)で任意に注文できます。ただし、メインのコンテンツサマリーページに表示されない別の場所にコンテンツが「非表示」になり、コンテンツマネージャはそこを確認する必要があるため、カスタムブロックを管理するためのデフォルトビューには、コンテンツフィルター(ただし、そのビューにはいくつかのフィルターを追加できます)。また、各アイテムをカスタムブロックタイプの新しいインスタンスとしてブロックレイアウトページに追加すると、そのリストはかなり長くなり始めます。

コンテンツタイプとしてコンテンツを追加することは、ノードとして作成されたことを意味すると思います(カスタムブロックタイプを介してではないのですか?)

編集:私たちが構築するサイトは大きく、常に多言語です。これは回答に影響を与える可能性があります。

4
rje

Drupalでは、コンテンツはノードで作成されます。ブロックは、コンテンツに関連する可能性のある詳細情報(表示されたノードが含まれる同じ本の一部であるノード、または現在表示されているものに他の何らかの方法で関連しているノードなど)を提供するために使用されます。ユーザー(たとえば、最後にログインしたユーザー、または現在のノードを見たユーザー)、またはサイト全般。

Drupalは、ノードに関連付けられた権限から始めて、ノードにより多くの機能を提供します。ブロックの場合、プレーンなDrupalのインストールにはadminister blocks権限があり、新しいブロックを作成することも、既存のブロックを削除することもできますが、ノードの場合はプレーンなDrupalインストールには、ノードの編集、削除、表示、作成の権限があります。
ノードには、3つのフック(hook_node_grants()hook_node_records()、およびhook_node_access()を含む、ノードでの操作のためにユーザーに権限を割り当てるより複雑なシステムがあります)、ブロックの場合、その目的のためのフックがあります。

ビューを持つブロックを作成することを強制されないのと同じように、ノードのビューを作成することを強制されません。どちらの場合でも、Viewsモジュール(現在はDrupalコアモジュールの一部です)はエンティティのリストを作成するのに役立ちます。たとえば、Drupal 8でViewsモジュールを有効にすると、ビューから提供されるいくつかの管理ページがあり、管理者ユーザーはこれらのページを簡単に拡張できます。

また、私が覚えていることとして、ブロックにコメントを追加することはできませんが、ノードにコメントを付けることはできます。同様に、サードパーティのモジュールがノード用に実装し、ブロック用に実装しないものがあります。

1
kiamlaluno

私はあなたがこの質問を考慮すべきだと思います:

コンテンツには独自のURLが必要ですか?

はいの場合、ノードを使用します。次に、部分ビュー(ティーザー)をクリックして、コンテンツの完全なビューを独自のURLで取得し、メニューに配置したり、検索したりできます。

ブロックコンテンツは常にページの一部にすぎず、全体を表示することはないため、機能がはるかに少なくなります。

1
4k4

ブロック/ノードに必要な情報。あなたは考慮すべきです

  • 情報を複数の場所に表示したい場合
  • 情報をリージョン内で簡単に再配置/配置したい場合
  • 情報に独自のURL /複雑な権限/クエリベースのロジックが必要ない場合

その後、ブロックに行きます。それ以外のノード。私は自分のサイトのメインページのノードに移動し、それらのページ内で、必要に応じてブロックを使用します。

幸運を :)

1
devasghar

コンテンツをノードとして保存するため、「コンテンツタイプ-メソッド」をお勧めします。 Nodeとして保存すると、コンテンツを取得して再フォーマットするのに役立ちます Node API関数 。Node Views、Sliderなどのさまざまなコア&提供モジュールによってアクセスされます-提供されているほとんどのモジュールはノードを中心に構築されています。

1
gopivignesh.m