Làm thế nào để lập trình kết xuất một lời trêu ghẹo của một nút bằng cách sử dụng lớp chủ đề?


10

Làm cách nào để lập trình kết xuất một nút của nút bằng cách sử dụng lớp chủ đề?

Câu trả lời:


20

node_view() là hàm tiêu chuẩn để kết xuất các nút, vd

$node = node_load(1);
$view = node_view($node, 'teaser');
$rendered = drupal_render($view);

Có một nodechủ đề được xác định bởi mô-đun nút (trong node_theme()) nhưng tôi chưa bao giờ thực sự thấy nó được sử dụng.


1
Không phải là node_theme () cho phép hệ thống chủ đề sử dụng tệp .tpl.php cho phần tử và cũng cho phép các hàm tiền xử lý?
mpdon Arena

Vâng, tôi lo lắng về việc bỏ qua lớp chủ đề. Nếu tôi làm điều đó, thì các mô-đun khác muốn gắn chip sẽ không thể. Ít nhất, tôi nghĩ đó là chính xác?
Lester Peabody

1
Sau khi phân tích api.drupal.org/api/drupal/modules%21node%21node.module/function/... nếu bạn xem mã thực hiện, nơi nó nói $build += array(, nó vẫn có một #themethuộc tính trong đó mà tôi đoán nói với Drupal để sử dụng hệ thống chủ đề. Sửa tôi nếu tôi sai. Bây giờ tôi mới bắt đầu 'nhận' API Drupal :)
Lester Peabody

@MPD Vâng, tôi đã không giải thích điều đó rất tốt, tôi chỉ có nghĩa là tôi chưa bao giờ thấy một cuộc gọi như theme('node', ...trước đây. Trong thực tế, điều đó thậm chí sẽ không hoạt động bởi vì nó tự xác định là có render elementthay thế variables.
Clive

@Lester điểm trên, có 2 cách để gọi chức năng chủ đề, cách 'bình thường' ( theme('theme_name', $args)và bằng cách sử dụng cái gọi là render elements. Các hook_theme()tài liệu giải thích nó khá tốt, nó không phải là 100% trực quan nhưng một khi bạn đã biết, nó thực sự hữu ích. Dùng node_view()ý chí không bao giờ bỏ qua lớp chủ đề vì vậy bạn sẽ ổn thôi :)
Clive
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.