web-dev-qa-db-ja.com

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

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

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

7
Bart Braem

カスタムページテンプレートと追加の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 content。

Fancyboxで使用する場合:

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

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

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

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

2
milkovsky

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はこれを受け入れられた回答のコメントに追加できます。私のスコアが低すぎます。

0
ryrye

Colorbox node モジュールを試しましたか?私はそれがまさにあなたが必要とするものだと思います;)

0
user19544