Hiển thị các nút xem trong hộp đèn?


7

Điều gì sẽ là cách tốt nhất để hiển thị các nút từ chế độ xem trong hộp đèn, được kích hoạt bởi một hình ảnh duy nhất? Ý tưởng sẽ là một bức ảnh đẹp được hiển thị trên một trang nhất. Khi người dùng nhấp vào nó, một khung nhìn được mở trong hộp đèn / hộp dày / hộp màu / *. Điều này sau đó hiển thị tất cả các nút trong chế độ xem.

Tôi hiện đang quản lý để làm điều này chỉ cho hình ảnh với hộp màu, nhưng điều đó là không đủ vì tôi muốn hiển thị chú thích, v.v. Tôi muốn sử dụng chức năng hộp màu đầy đủ, thay vì chỉ hình ảnh. Tôi đã thử sử dụng iframe, tuy nhiên điều này có nghĩa là mọi nút được hiển thị với chủ đề trang web đầy đủ (tiêu đề, logo, chân trang, v.v.) không phải là điều tôi muốn làm.

Câu trả lời:


7

Tôi đã quản lý dự án của mình bằng cách sử dụng một mẫu trang tùy chỉnh và một tham số get bổ sung.

Template.php: (Trong thư mục chủ đề đang hoạt động)

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
    }
}

Sau đó tôi đã tạo một tệp mẫu (page-overajax.tpl.php) trong thư mục chủ đề với nội dung sau:

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

Sau này (Xóa tất cả bộ nhớ cache), bạn có thể sử dụng bất kỳ đường dẫn nào (trang, chế độ xem, nút) ?ajax=trueđể chuyển đến hộp * của bạn để tải nếu nó hỗ trợ cho nội dung AJAX.

Khi sử dụng với 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
Có thể là gợi ý này chỉ hoạt động cho Drupal 6? Khóa template_files dường như không dùng nữa trong Drupal 7.
Bart Braem

Bạn nói đúng :)
Shoaib Nawaz

2

Bạn có thể sử dụng mô-đun Colorbox Node :

Cung cấp cho người dùng khả năng hiển thị BẤT K page trang nào trong chế độ hộp màu mà không cần đầu trang và chân trang.

Liên kết của bạn sẽ giống như thế này: href = "blog / ví dụ của tôi? Width = 600 & height = 600"


0

Đối với D7, tôi đã phải tuân theo các quy ước đặt tên chặt chẽ hơn trong câu trả lời của Shuaib Nawaz. Mã của tôi trông như thế này:

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.
    }
}

Có lẽ OP có thể thêm điều này vào các bình luận về câu trả lời được chấp nhận, điểm của tôi quá thấp.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.