Chèn một khối lượt xem vào một nút trong Drupal 7


6

[Drupal 7]

Tôi có một khối tôi đã tạo trong Chế độ xem được gọi là "gad_tips-block_1".

Bây giờ tôi muốn chèn nó vào trường cơ thể của nút của tôi.

Làm thế nào để tôi làm điều này?

Tôi tìm thấy một hướng dẫn ở đây , gợi ý sử dụng đoạn mã sau:

<?php
print $block = module_invoke('views', 'block_view', 'handy_tips-block_1');
print render($block['content']['#content']);
?>

Tuy nhiên, tất cả những gì được in ra là dòng chữ "Mảng". (Tôi đã kích hoạt bộ lọc đầu vào PHP cho trường cơ thể).

Lưu ý: trong mã được đăng, tôi cũng đã thử thay thế 'lượt xem' bằng các mục khác nhau, chẳng hạn như "chặn". Tôi đã sử dụng 'gad_tips-block_1' làm ID, vì đó là những gì được hiển thị trên liên kết cấu hình của trang quản trị khối.

Câu trả lời:


15

Đầu ra là "mảng" vì thực sự là một mảng, sau đó tôi đoán rằng bạn muốn in mảng của mình để xem trường nào bạn có thể sử dụng:

print_r($block);
print_r($block['content']['#content']);
print_r(render($block['content']['#content']);

Giới thiệu về hiển thị Chế độ xem, bạn có thể sử dụng dòng mã này trong mẫu của mình để gọi chế độ xem:

echo views_embed_view('view-name', $display_id = 'display-name');

ví dụ: bên trong node.tl.php của tôi, tôi muốn chèn một khung nhìn được gọi test viewvà tôi muốn sử dụng hiển thị Khối của mình với tên máy block_test, sau đó tôi có thể sử dụng:

echo views_embed_view('test_view', $display_id = 'block_test');

(Hãy nhớ sử dụng tên máy của chế độ xem và tên máy của màn hình của bạn).

Tôi hy vọng thông tin này sẽ hữu ích.


Nếu tôi đã sử dụng phương pháp trên, thì các liên kết theo ngữ cảnh không hiển thị?

print views_embed_view('my_view_name', 'block', 'student', 'one');Lập luận của tôi thích student/one. Cảm ơn giải pháp. Được sử dụng cả hai (sinh viên, một) trong bộ lọc theo ngữ cảnh.
kalidasan

8

Cách ưa thích của tôi để nhúng các khung nhìn trong các tệp mẫu là với hàm Views_embed_view () .

Nó thực sự dễ sử dụng:

<?php print views_embed_view('view-name', 'display-name','arguments'); ?>
  • Đối số 'tên hiển thị' tương ứng với loại hiển thị trong chế độ xem của bạn và số lượng các loại đó có nhiều loại. Vì vậy, nếu trong chế độ xem của bạn, bạn đã tạo hai khối, bạn có thể gọi khối này hoặc khối kia bằng cách sử dụng 'khối-1' hoặc 'khối-2' trong đối số 'tên hiển thị'.
  • Đối số thứ ba, 'đối số', là tùy chọn và có thể được sử dụng để vượt qua mọi đối số bộ lọc theo ngữ cảnh mà chế độ xem của bạn phụ thuộc vào.

Thực sự là một giải pháp tuyệt vời. Làm việc như người ở!
khúc côn cầu2112

Có ai đã tìm ra cách kết xuất tiêu đề khối với lượt xem_embed_view () chưa?
jay-ess

5

Tôi khuyên bạn nên sử dụng mô-đun Đính kèm Chế độ xem Thực thể , cho phép bạn chèn chế độ xem vào mô-đun của mình như thể đó là một trường hoặc mô-đun Display Suite cho phép bạn tùy chỉnh bố cục nút và chèn tất cả các loại khối vào đó.


Cám ơn vì sự gợi ý. Tôi chỉ muốn nhúng một chế độ xem trên trang, vì vậy sử dụng toàn bộ mô-đun có vẻ như quá mức cần thiết. Tuy nhiên, cảm ơn vì đã dành thời gian trả lời.
big_smile

Bạn được chào đón, cảm ơn vì đã phản hồi. Để rõ ràng, tôi nghĩ không có gì sai với cách tiếp cận khác, tôi chỉ muốn đề cập đến các mô-đun.
marcvangend

Một lựa chọn khác sẽ là mô-đun chặn .
TheodorosPloumis

1

Tôi nhận ra đây là một chủ đề cũ, nhưng tôi cũng đang tìm kiếm nó và tìm thấy mô-đun BlockReference . Nó cho phép bạn liên kết một khối với một nút như một trường.

Nó hoạt động một điều trị!

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.