分類用語(本のカテゴリー)のビューがあります。このビューには、ユーザーが使用できるすべてのカテゴリが一覧表示されます。次に、ユーザーがカテゴリをクリックすると、divがいくつかの本(別のビュー、コンテキストフィルター付き)とともに表示されます。リンクをクリックすると、書籍の全文または詳細に移動できますが、リンクをクリックせずに別のセクションに移動してタイトルをクリックすると、前のセクションを閉じますdiv、および新しい本を含む別のdivがこの新しいセクションに表示されます。
スキーマは次のようになります。
カテゴリ1をクリックすると、AJAXが表示されます。
両方のモジュール Views Field View および Views Accordion を使用して、AJAXなしで機能させることができました。
ただし、AJAXで動作させる方法を見つけることができないため、タブのコンテンツは読み込まれませんAJAXで1つのタブカテゴリをクリックして開くと、ブラウザのメモリ/速度/ 1つのカテゴリの書籍のみを表示したい場合でも、サーバーの再要求に影響はありません。
モジュール「Views Ajax Get」を使用してみることができます
https://www.drupal.org/project/views_ajax_get
または、ビュー自体がAjaxを介してビューを取得するためのコールバック/ views/ajaxを提供するため、以下のサンプルコードを使用して独自に実装することもできます-
PHP:
$view = views_get_view('taxonomy_term');
$view->set_display('page');
$view->set_use_ajax(TRUE);
$view->set_arguments(array($tid));
$settings = array(
'views' => array(
'ajax_path' => url('views/ajax'),
'ajaxViews' => array(
array(
'view_name' => $view->name,
'view_display_id' => $view->current_display,
'view_args' => check_plain(implode('/', $view->args)),
'view_path' => check_plain($_GET['q']),
'view_base_path' => $view->get_path(),
'view_dom_id' => 1,
'pager_element' => $view->pager['element'],
),
),
),
);
drupal_add_js($settings, 'setting');
views_add_js('ajax_view');
JavaScript:
$.ajax({
url: Drupal.settings.views.ajax_path,
type: 'GET',
data: data,
success: function(response) {
var viewDiv = '.view-dom-id-' + data.view_dom_id;
$('#content > div.limiter').html(response.display);
// Call all callbacks.
if (response.__callbacks) {
$.each(response.__callbacks, function(i, callback) {
eval(callback)(viewDiv, response);
});
}
},
error: function(xhr) {
$('#content > div.limiter').html('<p id="artist-load-error">Error text.</p>');
$('#block-request-0').hide();
},
dataType: 'json'
});
リファレンス: https://stackoverflow.com/questions/4932523/embed-a-view-using-ajax
Views Megarow 望みのようにビューの真ん中に新しい「アコーディオン」ページを開くので、この状況に理想的だと思われます。
書籍をリストする親用語の新しいビューページ/パネルページを作成する必要があります。これはさまざまな方法で行うことができますが、/ categories /%tidのビューが最も簡単だと思います。
利点は、そのページ内で本当にたくさんのことができるということです。ブロック/コメント/複数のビューなど、本をリストするだけです。すでに各カテゴリーのページがある場合、それはメガロウ内にロードするのに適したバージョンを作成する場合でしょう。
最後のカテゴリは閉じませんが、いくつかの基本的なjQueryでそれを乗り越えることができると思います。