web-dev-qa-db-ja.com

Drupal 7-コンテンツタイプをブロックおよびブロック命名規則として表示

いくつかのフィールドを持つコンテンツタイプを作成しました。これらのフィールドをブロックとして表示します。

「テーマ/テンプレート」のブロックの名前をblock--[machine-name].tpl.phpに変更しようとしましたが、役に立ちません。

3
user3350

したがって、これを正しく理解している場合、いくつかの論理要件に基づいてコンテンツタイプのフィールドを表示するブロックを作成し、.tplオーバーライドを提供して、これらのフィールドの出力にカスタム作業を行う方法を尋ねていますか?私はそれが正しいことを願っています。

したがって、これをどのようにしたいかによって、これは比較的簡単です。

  • ステップ1:コンテンツタイプを作成し、必要なすべてのフィールドを追加しました。次のパートをテストするために、すでにいくつかのコンテンツを作成していると思います。
  • ステップ2:ブロック表示のあるビューを作成する必要があります。例については、スクリーンショットを参照してください。 https://skitch.com/therealwebguy/8ksue/block-step-1
  • ステップ3:ブロックビューを適切に設定します。この詳細については、スクリーンショットを参照してください: https://skitch.com/therealwebguy/8ksw9/block-step-2
  • ステップ4:ステップ3で提供されたスクリーンショットを参照すると、右下に、テーマレイヤーの[情報]リンクが強調表示されていることがわかります。このリンクをクリックすると、このビュー用に作成できるすべての.tplファイルのリストが表示され、必要なものをターゲットにできます。これには、トップレベルのビューtplから、ビューによってレンダリングされる単一フィールドの出力までのすべてが含まれます。ニーズに最適なものを選択し、提供されたHTMLをコピーして、使用するために選択したview.tpl.phpファイルを追加します。

要約しましょう:

  • コンテンツタイプを作成し、それにフィールドを追加しました。
  • テスト用に新しいコンテンツタイプの実際のノードを追加しました。
  • ブロック表示を提供する新しいビューを作成し、表示したいコンテンツタイプのフィールド値を表示します。
  • ニーズに最適なテーマレベルでさらにカスタマイズするために、選択したビューのカスタムtplオーバーライドを作成しました。

あとは、ブロック管理に行き、ブロックを好きな場所に置くだけです。

幸運を!

4
TheRealWebGuy

次のモジュールのいずれかをお勧めします。

ノードブロック

このモジュールでは、コンテンツタイプをブロックとして指定できます。これにより、サイトのコンテンツ管理者は、ブロック管理ページにアクセスしなくても、ブロックのテキストとタイトルを編集できます。ユーザーは、そのノードを編集するために、そのノードへの編集アクセスのみが必要です。

単純なブロックコンテンツタイプを作成し、このコンテンツタイプをブロックに対して有効にして、通常の「ブロックの追加」機能の代わりにこれらを使用すると非常に便利です。

ブロック内のノード

ブロック内のノードは、ノードをブロックに追加することを可能にします。リージョンに割り当てることができるいくつかの設定可能なブロックが生成されます。このブロックの表示設定は、[リストされたページにのみ表示]に自動的に設定されます。ノードコンテンツフォームでは、ノードごとの重みと可視性を定義します。これにより、すべてのコンテンツが同じ場所にあるため、コンテンツ管理が容易になります。このモジュールを使用すると、ブロックがどのように機能するかを顧客に説明する必要はありませんが、コンテンツをレンダリングする必要があるページを決定できます。

カスタムコンテンツタイプの名前でブロックテンプレートの名前を変更するだけでは、そのテンプレートからブロックは生成されません。

1
Chapabu

Bean モジュールを使用します。ブロックをエンティティとして作成し、フィールドを追加できるようにします。以下は、モジュールのプロジェクトページからの抜粋です。

Beanは、新しいタイプを提供するメソッドと考えてください(ノードと比較すると、これはコンテンツタイプになります)。必要な数のブロックを作成するための追加コンテンツインターフェースを提供します。 Beanのコンテンツは、他のブロックと同じようにサイトの周りに配置できます。

0
indytechcook