単一の画像によってトリガーされる、ライトボックスのビューからノードを表示する最良の方法は何ですか?アイデアは、素敵な写真がフロントページに表示されるということです。ユーザーがクリックすると、ライトボックス/シックボックス/カラーボックス/ *ボックスでビューが開かれます。これにより、ビュー内のすべてのノードが表示されます。
私は現在、カラーボックスのある画像のみにこれを行うことができますが、キャプションなどを表示したいので十分ではありません。画像だけでなく、フルカラーボックス機能を使用したいと思います。私はiframeを使用してみましたが、これはすべてのノードが完全なサイトテーマ(ヘッダー、ロゴ、フッターなど)で表示されることを意味し、それは私がやりたいことではありません。
カスタムページテンプレートと追加の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);
}
}
});
Colorbox Node モジュールを使用できます:
ヘッダーとフッターなしでカラーボックスモーダル内の任意のページを表示する機能をユーザーに提供します。
リンクは次のようになります:href = "blogs/my-example?width = 600&height = 600"
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はこれを受け入れられた回答のコメントに追加できます。私のスコアが低すぎます。
Colorbox node モジュールを試しましたか?私はそれがまさにあなたが必要とするものだと思います;)