วิธีเก็บเทมเพลต Views ด้วยโมดูลแทนธีม


13

ฉันได้สร้างเทมเพลตหลายมุมมองที่เก็บไว้ในไดเรกทอรีธีมที่ใช้งานอยู่ของฉันในปัจจุบัน ต้องการเก็บแม่แบบเหล่านี้ไว้ในไดเรกทอรีโมดูลของฉัน

คำถามของฉันคือฉันจะนำไฟล์ชุดรูปแบบเหล่านี้ (ตัวอย่างเช่น views-view-field.tpl.php) ไปยังไดเรกทอรีโมดูลของฉันและให้พวกเขาเห็น Views ได้อย่างไร

เมื่อดูที่โมดูล Views ฉันจะเห็นว่าเทมเพลตเริ่มต้นถูกเก็บไว้ในมุมมอง / ธีม แต่ฉันไม่เห็นวิธีการใช้งาน

คำตอบ:


29

ฉันใช้เวลาสักครู่เพื่อคิดออกเช่นกัน ควรวางโค้ดต่อไปนี้ในไฟล์. โมดูล (โค้ดถือว่าโมดูลของคุณเรียกว่า "NAME")

/**
* Implements hook_views_api().
*
* Enabling using templates inside module
*/
function NAME_views_api() {
  return array(
    'api' => 3,
    'path' => drupal_get_path('module', 'NAME'),
    'template path' => drupal_get_path('module', 'NAME'),
  );
}

สิ่งนี้จะบอก Views ให้ดูในไดเรกทอรีรากของโมดูลของคุณ ฉันเป็นแฟนตัวยงของการเพิ่มไดเรกทอรีย่อยลงในโมดูลเพื่อเก็บไฟล์แม่แบบ เมื่อต้องการทำสิ่งนี้ให้ผนวกชื่อไดเรกทอรีไปยังจุดสิ้นสุดของเส้นทางแม่แบบเช่น:

'template path' => drupal_get_path('module', 'NAME') . '/templates',

การเพิ่มลงในไดเรกทอรีย่อยเป็นแนวคิดที่ยอดเยี่ยมทำความสะอาดสิ่งต่างๆและใช้งานได้อย่างสมบูรณ์แบบ ผู้ค้นหาในอนาคตควรทำการล้างแคชของ Drupal ขอบคุณ @Reekan Mantell
Citricguy

ขอขอบคุณ! ฉันแฮ็คชุดรูปแบบผู้ดูแลระบบของฉันเป็นเวลาหลายเดือนเพื่อขี่ฟิลด์มุมมองในเจ็ดวัน ตอนนี้ฉันไม่ต้อง
JM01

และฉันต้องบอกว่าคุณยังสามารถใส่ TPL ในธีมของคุณแม้ว่าคุณจะใช้รหัสนี้แล้ว ขอบคุณ
anou

2
สิ่งนี้จะไม่ทำงานกับโมดูลคุณลักษณะแทนที่จะใช้hook_views_api_alter()ตามที่ระบุไว้ที่นี่: deeson.co.uk/labs/views-templates-features-module
Aubrey Robertson

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.