左側にリスト、中央にアイテムの内容を表示するビューを作成したいと思います。ユーザーが左側のリスト内のアイテムをクリックすると、そのアイテムは中央の領域または列に表示される必要があります。ページを更新せずに実行する必要があります。
記事を表示するビューを考えてみてください。左側のリストには小さな画像、タイトル、トリミングされた説明が表示され、中央の列には実際にクリックされたアイテムが表示されます。
どうやってするか?
注:パネルも使用できます。
ここにいくつかのポインタがあります。ただし、コードを作成する必要がある場合があります。
長い答え
node/*
パス内の関連するノードタイプに対してのみ表示できます。そうすれば、メインコンテンツ領域にノードが表示されます。nid
を入力として受け入れ、レンダリングされたノード(マークアップ)を出力として返すカスタムモジュール(またはビューかもしれませんか?)を使用してMENU_CALLBACK
を作成します。Drupal.behaviors
を使用してクリックリスナーを追加し、サイドバーブロック内のリンクのクリックを上書きします。<h2 data-nid="XXX">Node Title</h2>
などのノードIDを持つ属性を含めると、jQueryを使用してノードIDを簡単に読み取ることができます。click
コールバックがfalse
を返すことを確認して、デフォルトのクリックイベントがコールバックで終了するようにします。#block-system-main .content
(メインページのコンテンツブロック)に配置するだけです。短い答え
お役に立てれば。
ビューには詳細設定にAjaxオプションがありますが、適切な場合とそうでない場合、または上記の説明に十分な機能がある場合があります。
前の回答を参照してください https://stackoverflow.com/questions/3016747/drupal-use-ajax-to-update-views-content および Ajaxでビューをロードして表示する方法in Drupal 7? および AJAXを使用してビューのコンテンツにアクセスする 。
どのソリューションでも、カスタマイズが必要な場合と不要な場合があります。
すべての答えをありがとう。 drupalには、すべてのモジュールがあると誰かが言ったことは驚くべきことです。
私が見つけた 垂直タブを表示 私が望んでいたことを正確に実行するモジュール。
ページが更新されないということは、すべてのデータを読み込んでJSで非表示にするか、AJAXを使用してデータを取り込む必要があることを意味します。私は個人的にビューでそのようなことを知りません。
Panelsの使用に問題がない場合は、「Panels Ajax Tabs」が探しているものかもしれませんが、箱から出してすぐに必要なことができるかどうかはわかりません。