0

ノードのリストを表示し (Views モジュールでこの部分を実行できます)、リストの下に単一ノードの詳細も表示するページが必要です。リスト内のノードがクリックされたときに Ajax を介して詳細が更新されるのが理想的ですが、最初はページをリロードしても問題ありません。

私は Drupal を使い始めたばかりで、自分ができることのできるレベルの数にはやや圧倒されています。たとえば、これはカスタマイズされたブロックが下部にあるビュー ページにする必要がありますか? 2 つのブロック (リスト用に 1 つ、アイテム用に 1 つ) を含むページ? もしそうなら、彼らはどのようにノードIDを伝えますか? これを行うモジュールは既にありますか? たぶん私は自分のモジュールを書くべきですか?等々。Drupal の一般的な理解を深めている人が、私を正しい方向に向けることができれば幸いです。

編集: これまでの回答に感謝します。元の質問で重要な詳細を見逃していたことを指摘していると思います。したがって、いくつかの詳細:

このページを効果的にユーザーのホームページにしたいと考えています。そのため、私のビューは、作成したノードの表示に制限されています。デフォルトのノードページを編集すると、ユーザーがログインしたときにユーザーをどのノードに送信するかという問題が発生し (これはおそらく可能であると思います)、ビューも表示しないとノードを表示できない可能性があります。

PHPを使用してビュー(user_homeと呼ばれる)を含むページノードを作成するという別の方法を試しています。また、リスト内の各ノードのリンクを作成し、そのリンクにノード ID を含めるようにビュー コントロールを設定しました作成したページの ID で、12 はリスト内のアイテムのノード ID です)。

<?php
//output the user_home view
print views_embed_view('user_home', $display_id = 'default');
?>
<br/>
<hr/>
<br/>
<?php
$queryparam = $_GET["q"];
// find the second /
$index = strpos($queryparam, '/');
$index = strpos($queryparam, '/', $index + 1);
$displayNodeId = substr($queryparam, $index + 1);
$displayNodeId = (int)$displayNodeId;

if ($displayNodeId > 0)
{
  $displayNode = node_load($displayNodeId);
  print node_view($displayNode);
}
?>

さて、これは機能しますが、より drupal に適した、準拠した方法であると確信しています (クエリ文字列の解析は厄介なハックです)。

4

3 に答える 3

1

このための標準的な解決策は、「コンテンツトップリージョン」のブロックとコンテンツリージョンのフルノードを使用することです。

これを実現する最も基本的な方法は、ノードページを通常どおりに表示し、コンテンツの上部領域を持つテーマで(Garlandはそうではなく、Zen classicはそうします)、必要なリストを含むViewsブロックを作成し、その中に配置することです。領域。パスをビューへの引数として使用できるため、ビューの内容は現在表示されているノードに依存します。次に、必要な条件にのみ一致するようにブロックの可視性を定義します。おそらく、ノードページにのみ表示するか、特定のコンテンツタイプのノードページに表示します。このためには、ブロックにPHP可視性モードを使用し、次のようにします。

// Filter args for safety
if ((arg(0) == 'node') && is_numeric(arg(1)) {
  $node = node_load(arg(1);
  return is_object($node) && ($node->type == 'the_content_type_i_want');
}
else {
  return FALSE;
}

そうすれば、ブロックは必要なときにだけ表示されます。

テーマにこの機能がない場合、パネルは、ページを分割してビューを1つのパネルに配置し、ノード全体を別のパネルに配置する方法を提供します。

于 2009-04-17T08:07:57.793 に答える
0

カスタムページャーが機能する場合があります。 http://drupal.org/project/custom_pagers

まず、ページャーが作業するビューを作成します。これは、特定のユーザーによるすべての投稿、または任意の投稿である可能性があります。他のビューと同じように柔軟性があります。

標準のページャー(およびデフォルト)のようにフォワードバックリンクを提供する必要はありません。custom_pagersを使用すると、ビュー内のすべてのノードを含む$nav_array変数を使用できます。

これで、テーブルまたはリンクのリストを作成できるようになります。

ノードタイトルに基づいてセカンダリメニューを生成する

于 2010-11-03T09:02:36.063 に答える
0

私はそれを次のようにします。Views ブロックにページ固有の可視性設定を設定し、ノード リストがそのノードにのみ表示されるようにします。Pathautoモジュールは、ノード パスの束を管理するのにも役立ちます。

于 2009-04-16T15:25:07.547 に答える