2011-02-06 19 views
1

私は、カスタムコンテンツタイプを使ってDrupalで簡単なギャラリーを作成しました。これは実際にはアイテムの数に制限のない画像フィールドを持つ記事です。私はこのコンテンツタイプ(node - gallery.tpl.php)のためのカスタムテンプレートを作成しました。完全なページのために私はルックアンドフィールに満足しています。Drupal 7 gallery teaser

私が立ち往生していることの1つは、ティーザーの最初の数枚の画像だけを表示することです。私はティーザー(最初の3つの画像)に画像の最初の行を表示したい。テンプレートファイルには、$content['field_images']にはギャラリーのすべての画像が含まれていますが、print render($content['field_images']はすべての画像を出力します(私が期待しています)。

したがって、Drupalに最初の3つのアイテムを出力するには、どうすれば$content['field_images']から取得しますか?私が興味を持っているのは、レンダリングされた画像の数を減らす方法を知っていれば、私は自分自身でそれを動作させることができると確信していますが、Drupalに3つのランダムな画像を出力させる方法です。

+0

まあ、その変数の内容は何ですか?それは ''タグ付きの連結HTML文字列ですか?それとも配列ですか? – mario

+0

@marioあなたが尋ねているのであれば、私はあなたがDrupalを知らないと思っています。私は$ content ['field_images']の完全な出力で質問を更新しましたが、それはかなり長いです... – Endophage

+0

まあ、私はしません。制限された情報を推測するのは簡単ですが、可変ダンプを使用すると説明がクリアされます。 – mario

答えて

1

テンプレートで、イメージファイル名を持つ適切な配列構造を探します。 $contentで見つからない場合は、var_dump出力の$nodeを見てください。 forループを作成して最初の3つのアイテムを繰り返し、それぞれのアイテムについてtheme_image()を呼び出します。使用するイメージスタイルがある場合はtheme_image_style()です。適切な構成配列を、配列から取得したファイル名を使用するか、またはどちらかに渡します。

+0

それはそれより少し簡単になった。 $ content ['field_images']の内側には、すべてのメタ情報( '#'で始まる要素)とともに、番号付きの要素があります。番号が付けられた要素は各画像に関連付けられた完全なノードであるように見えましたので、print render($ content ['field_images'] [$ i])を実行して私が望むものを得ることができました。ちょっとふわふわであればあなたにはちょうどいいところがあります。 – Endophage

2

var_dumpを実行するか、または配列を繰り返し処理するのではなく、develモジュールをインストールしてdpm()関数を使用して出力してください。

+0

できました。私はD7アルファ4以来、私はこのプロジェクトに取り組んでいたと考えていませんでした.DELモジュールがdevelモジュールのために存在しなかったとき。 – Endophage