วิธีสร้างทีเซอร์ของโหนดโดยทางโปรแกรมโดยใช้เลเยอร์ธีมหรือไม่?


คำตอบ:


20

node_view() เป็นฟังก์ชั่นมาตรฐานสำหรับการแสดงผลโหนดเช่น

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

มีnodeชุดรูปแบบที่กำหนดโดยโมดูลโหนด (ในnode_theme()) แต่ฉันไม่เคยเห็นมันใช้


1
ไม่ node_theme () สิ่งที่ช่วยให้ระบบชุดรูปแบบใช้ไฟล์. tpl.php สำหรับองค์ประกอบและยังช่วยให้ฟังก์ชั่น preprocess?
mpdonadio

ใช่ฉันกังวลเกี่ยวกับการข้ามเลเยอร์ธีม ถ้าฉันทำอย่างนั้นโมดูลอื่น ๆ ที่ต้องการชิปในจะไม่สามารถทำได้ อย่างน้อยฉันคิดว่าถูกต้อง?
Lester Peabody

1
เมื่อวิเคราะห์api.drupal.org/api/drupal/modules%21node%21node.module/function/ ......ถ้าคุณดูรหัสการนำไปใช้งานซึ่งมันบอกว่า$build += array(มันมี#themeคุณสมบัติที่ฉันเดาว่าจะบอกให้ Drupal ใช้ ระบบชุดรูปแบบ ช่วยแก้ให้ด้วยนะถ้าฉันผิด. ตอนนี้ฉันเพิ่งเริ่ม 'รับ' Drupal API :)
Lester Peabody

@MPD ใช่ฉันไม่ได้อธิบายว่าดีมากฉันแค่หมายความว่าฉันไม่เคยเห็นสายเหมือนtheme('node', ...ก่อน ในความเป็นจริงว่าจะไม่ได้ทำงานเพราะจะกำหนดตัวเองว่ามีแทนrender element variables
ไคลฟ์

@Lester จุดที่มี 2 วิธีในการเรียกฟังก์ชั่นรูปแบบที่ 'ปกติ' วิธี ( theme('theme_name', $args)และโดยการใช้ที่เรียกว่าrender elementเอส. hook_theme()เอกสารอธิบายมันสวยดีก็ไม่ได้ 100% ใช้งานง่าย แต่เมื่อคุณรู้ว่ามันมีประโยชน์จริงๆ. ใช้node_view()พระทัย ไม่เคยข้ามชั้นรูปแบบดังนั้นคุณควรจะปรับ :)
ไคลฟ์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.