2012-05-01 5 views
0

私はモジュールを使って作業しています。 私はノードIDを持っています。そのノードIDはページであり、2つ以上のビューブロックを持っています。ビューの結果は添付ファイル付きのノードのリストです。与えられたノードid(プログラム的に)のビューによって出力される添付ファイルを取得する方法 - Drupal

この特定のページのビューで出力されたノードに添付されているすべてのファイルを取得する必要があります。

私はモジュールファイルで作業し、これらのビューが座っているタイプのページのnidを提供できます。

私は多くの助けを見つけることができませんでしたので、私はこれに近づく最良の方法が何であるかを尋ねることにしました。

私はDrupalの新人ですから、これにアプローチする方法についての素晴らしい説明をお待ちしております。

答えて

0

私があなたの質問を正しく理解している場合、引数を設定したビューを印刷する必要があります。 ビューのマシン名とディスプレイIDを取得します(Drupal 6 Views 2で、ディスプレイリスト(ブロック、ページなど)にマウスポインタを置くと、 "block_4"や "page_1"のようなものが表示されます。これはディスプレイIDです.D7 Views 3では、右ペインに設定されている詳細フィールドにディスプレイIDを設定できます)。

ビューのマシン名が「my_view」で、表示IDが「block_1」の場合は、 ビューをnode.tpl.phpまたは以下のコードを使用して印刷できます。

<?php 
print views_embed_view('my_view', 'block_1', array(arg(1))); 
?> 

arg(1)にノードIDが含まれています。コードをnode.tpl.phpまたはそのバリエーションに入れている場合、arg(1)は常にノードIDです。 page.tpl.phpに行く場合は、arg(1)が少なくとも数値であることを確認してください。

ビューでは、ビューに引数を正しく取得させるために、引数(コンテキストフィルタ、D7ワード)を追加する必要があります。コンテキストフィルタを設定して、URLから自動的に引数を取得することもできます。

+0

**ありがとうございます。**私はviewsモジュールを検索し、そこからコードを借りました。同様の原則に従って、すべてのリージョンを繰り返し、ノードIDに基づいてビューを検索し、その表示IDを取得し、そこからそれぞれのフィールドに表示します。私が学んだもう一つのことは、デルタが長いビュー名のためにハッシュされたので、別のテーブルに格納されたデルタ値からビュー名を取得しなければならないということでした。まったくそれは働いた。私はDrupalで進歩していないので、これを行うために私は別のDrupal開発者から助けを得ました。 – NickOpris

関連する問題