3

Drupalのブロックにカスタムフィールドを追加できるようにしたいですか?ページの幅全体に広がるヘッダー領域があります。その下には、ボディコンテンツの左側の列と、さまざまなブロックの右側のサイドバーがあります。ヘッダー領域には、その上にテキストが表示された背景画像が必要です。背景画像とテキストのカスタムフィールドを持つブロックを介してこれを行うことを望んでいました。

4

6 に答える 6

4

より良い方法は、 と を使用してコード内にカスタム ブロックを作成することhook_block_info()ですhook_pages_block_view()。次に、 を介して追加のフィールドを追加しますhook_block_configure()

フォーム API を使用すると、任意のタイプのフィールドを追加できます。

于 2012-09-20T10:01:32.590 に答える
3

Bean モジュールを使用します。これにより、フィールドや画像フィールドを含むカスタム ブロック タイプを作成できます。これは、ブロック モジュールとうまく統合されます。デモについては、このビデオをご覧ください - http://www.youtube.com/watch?v=Eu1YNy-BNG8

于 2012-12-23T17:19:15.200 に答える
1

私がそれを行う方法 (そして、そのように行う他の人も何人か知っています) は、たとえば、コンテンツ タイプを「ブロック コンテンツ」にすることです。そこでは、好きなだけフィールドを作成できます。

次に、ブロック(mynodetype)が表示されるノードタイプでノード参照フィールドを作成します。

次に、ビュー - ブロックを作成します。つまり、関係 - コンテキストを指定する「カスタム ブロック」です。ほとんどの場合、このコンテキストは次のようなものになります: "mynodetype" の参照フィールドによって参照されるノード (ノードタイプ: ブロック コンテンツ) のフィールドを表示します。

これは非常にクリーンなソリューションであり、必要に応じて表示されるブロックが 1 つしかなく、コンテンツがまだノードにあり、ブロックの管理ページを汚染していないため、うまく機能します。

于 2013-01-18T13:40:17.570 に答える
1

Views モジュール、Fields、およびブロックを使用してこれを実現できます。

  1. Image Upload フィールドと表示したいその他のフィールドを使用して、Background Image というコンテンツ タイプを作成します。
  2. ビューを使用して、ブロックとして表示されるビューを作成します。必要に応じてフィールドを書き換えるように設定できます。
  3. ビュー設定を使用して、背景画像を画像ではなくパスとして表示します。

たとえば、ビューでフィールド置換を使用して、次のように設定できます。

<div style="background: [field_image] left top no-repeat">
<h2>[title]</h2>
<p>[field_whatever]</p>
</div>

少しやり過ぎのように思えますが、クライアントの手に渡ります。また、何百万もの背景画像ノードを作成してサイトを破壊しないように、特定のノード ID のみを使用するように制限することも必要です。お役に立てれば。

于 2012-01-06T07:38:54.103 に答える
0

ブロックはエンティティではないため、フィールドをエンティティにアタッチすることしかできません。フィールドの問題を解決できないのではないかと思います。

最善の策は、ブロックのコンテンツを表示するテキストに設定し、CSSを使用して含まれているdivをターゲットにし、その上に背景画像を配置することです。

または、ブロックコンテンツのフィルターを「フルHTML」に変更し、スタイルをインラインで記述します。

<div style="background:url(some/path)">Block content here</div>
于 2012-01-05T17:27:32.593 に答える
0

Node Blocksを使用して、自動的にブロックを作成するコンテンツ タイプを定義することができます。次に、少しの CSS を使用して、やりたいことを実行できます。

于 2012-01-06T11:57:42.977 に答える