ライトボックスにビューノードを表示しますか?


7

単一の画像によってトリガーされた、ライトボックスのビューからノードを表示する最良の方法は何ですか?アイデアは、素敵な写真がフロントページに表示されるということでしょう。ユーザーがクリックすると、ライトボックス/シックボックス/カラーボックス/ *ボックスでビューが開かれます。これにより、ビュー内のすべてのノードが表示されます。

私は現在、カラーボックスのある画像のみにこれを行うことができますが、キャプションなどを表示したいので十分ではありません。画像だけでなく、フルカラーボックス機能を使用したいと思います。私はiframeを使用してみましたが、これはすべてのノードが完全なサイトテーマ(ヘッダー、ロゴ、フッターなど)で表示されることを意味し、それは私がやりたいことではありません。

回答:


7

カスタムページテンプレートと追加のgetパラメーターを使用してプロジェクトを管理しました。

Template.php:(アクティブなテーマディレクトリ内)

function phptemplate_preprocess_page(&$vars){
    if( isset($_GET['ajax']) && $_GET['ajax']=='true' ){
        $vars['template_files'][] = 'page-overajax'; # For Drupal 6
        $vars['theme_hook_suggestions'][] = 'page-overajax'; # For Drupal 7
    }
}

次に、次の内容のテンプレートファイル(page-overajax.tpl.php)をテーマディレクトリに作成しました。

<div id="overlay-content-wrapper">
   <?php print $content; ?>
</div>

この後(すべてのキャッシュをクリア)、任意のパス(ページ、ビュー、ノード)を使用?ajax=trueして* boxに渡し、AJAXコンテンツをサポートしている場合はロードすることができます。

fancyboxで使用する場合:

$("a.overajax").fancybox({
    'width': 400,
    'height': 400,
    ajax: {
        type     : "GET",
        cache    : false,
        url      : "user/user-posts?ajax=true",
        success: function(data) {
              $.fancybox(data);
        }
    }
});

1
この提案はDrupal 6でのみ機能するのでしょうか?template_filesキーは、Drupalの7で非推奨と思われる
バートBraem

あなたは正しい:)
Shoaib Nawaz '19年

2

Colorbox Nodeモジュールを使用できます:

ヘッダーとフッターなしでカラーボックスモーダル内の任意のページを表示する機能をユーザーに提供します。

リンクは次のようになります:href = "blogs / my-example?width = 600&height = 600"


0

D7については、Shuaib Nawazの回答よりも厳密な命名規則に従う必要がありました。私のコードは次のようになります:

function my_theme_preprocess_page(&$variables, $hook){
    if( isset($_GET['ajax']) && $_GET['ajax']=='true' ){
        $variables['theme_hook_suggestions'][] = 'page__ajax'; 
        // then use page--ajax.tpl.php for page template file.
    }
}

おそらく、OPはこれを承認された回答のコメントに追加できます。私のスコアが低すぎます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.