it-swarm-ja.com

各ページに一意のバナー画像を追加します

私は自分自身を教えてきましたDrupal 7過去2週間。これまでのところ、私は一般的な考えを得て、ビューの使用方法を理解しました(私は思う)が、それが最も難しい私はこれまでに学ばなければならなかったCMSと私はたくさんの髪を引き出しました。

私が今立ち往生している問題は、サイト管理者が私のテーマのすべてのページの上部に表示される一意のバナー画像を添付できるようにしたいということです。このイメージを保持することを目的としたテーマに「バナー」領域があります。基本ページコンテンツタイプにバナー画像フィールドを追加しました。しかし、その画像をバナー領域に表示し、残りのページコンテンツ(本文)の流れに表示する方法を理解できません。

ビューとブロックでいくつかのことを試しましたが、何も機能しません。助けてください!

5
Ben

この方法は、Shoaid Nawazが上で述べた方法とかなり似ています。 Drupal 7の場合、 Views モジュールを使用できます。カスタムテーマ領域と組み合わせて、viewsモジュールを使用してブロックを作成し、それぞれの画像を表示できますコンテンツタイプに指定されたカスタム画像フィールドからのノード。ビューモジュールの基本的な実用知識が必要です。

方法は次のとおりです。

  • カスタムテーマリージョン を作成し、「バナーリージョン」のような名前を付けます。
  • コンテンツタイプに画像フィールドを追加し、「バナー画像」のような名前を付けます。説明が必要な場合は、画像フィールドのAltタグを有効にします。スライドショーが必要ない場合は、画像の数を1に制限してください。スライドショーの場合は、views_slideshowモジュールを使用できます。
  • 同様のサイズのバナー画像を作成するには、新しい画像スタイルを作成できます。
  • 新しいビューを作成します。 「バナー」のような名前を付けます。 「ページ」ではなく「ブロック」表示を選択します。
  • フィルター条件で、コンテンツタイプを選択します。
  • 「コンテンツ:Nid」のコンテキストフィルターを追加し、ビューを保存します。
  • 次に、ブロック管理ページに移動し、新しく作成したビューブロックを新しいバナー領域に追加します。

要するに:

  • バナー画像は、既存のコンテンツタイプの新しい画像フィールドです。
  • ビューモジュールは、コンテキストフィルターを使用して、どの画像がどのノードに関連付けられているかを理解します。

ヒント:フロントページがノードでない場合は、フロントページでこのブロックを無効にすることができます。

その他のヒント:複数のコンテンツタイプのバナーを作成する場合は、他のコンテンツタイプをフィルター基準に追加することを検討してください。または、ビューの設定で「結果の動作なし」を使用して、コンテンツタイプごとにブロックを作成し、コントロールの表示をブロックできます。

6
kaustavdm

Header Image 、モジュールがありますが、残念ながらDrupal 7.にはありません。自分で移植できるかどうかは考えていません。

ここ は、別の目的のための別のガイドです。

1
Shoaib Nawaz

ビューとコンテンツタイプを使用した実験では、別の方法で管理しました。

2つの(コンテンツ)フィールドが追加されたコンテンツタイプ(バナー)。

1. Image field
2. Visibility Location (URL) field

次に、block表示タイプのビューを作成しました。

田畑:

 - Image field (Imagecache output)

フィルタ:

 - Node type: Banner
 - Published: True

コンテキストフィルター:

- Content: Visibility Location

次に、このコンテキストファイラーのオプションを次のように編集しました。

1. Select "Provide default value" 
2. then select type as "PHP code"  

次にPHP contextual filter codeを次のように追加しました

if(drupal_is_front_page()){
  return '<front>';
}else{
  return drupal_lookup_path('alias',$_GET['q']);
}

TEST:ビューブロックをヘッダー領域に配置し、バナータイプの2つのノードを作成しました

  • ノード1について、Visibility Location<front>として選択しました
  • ノード2について、Visibility Locationcontact-usとして選択しました

そしてそれはうまくいった!

1
Shoaib Nawaz