สร้างไฟล์เทมเพลตสำหรับบล็อกการดู


19

มีจำนวนมากเกี่ยวกับการกำหนดบล็อกที่กำหนดเอง แต่บล็อกที่สร้างโดยมุมมองมีอะไรบ้าง

บล็อกมุมมองของฉันมี id: block-views-posts-listing-listing,

ฉันลองหลายวิธีสำหรับการตั้งชื่อไฟล์เทมเพลตเช่น: block - block - views-posts-listing-block.tpl.php แต่ฉันหาชื่อไฟล์ไม่ถูกต้อง


1
ธีมนักพัฒนาโมดูลสามารถบอกคุณได้ชื่อของแฟ้มแม่แบบ
Oswald

ขอบคุณ แต่ฉันตรวจพบว่า Themer สำหรับ D7 บางครั้งไม่ได้ผล
Codium

คำตอบ:


18

แก้ไขมุมมองของคุณ และภายใต้ "ขั้นสูง" "Theme: Information"การตั้งค่าของการปิดกั้นรายละเอียดของคุณคลิก รายการตัวเลือกของไฟล์เทมเพลตจะปรากฏขึ้น

ตัวอย่างเช่นหากบล็อกของคุณมีชื่อ "รายชื่อโพสต์" ให้ดูชื่อที่เป็นไปได้ที่ระบุโดยตัวเลือก "ข้อมูลธีม":

* Display output: views-view.tpl.php, views-view--posts-listing.tpl.php, views-view--default.tpl.php, views-view--block.tpl.php, views-view--posts-listing--block.tpl.php
* Style output: views-view-unformatted.tpl.php, views-view-unformatted--posts-listing.tpl.php, views-view-unformatted--default.tpl.php, views-view-unformatted--block.tpl.php, views-view-unformatted--posts-listing--block.tpl.php
* Row style output: views-view-fields.tpl.php, views-view-fields--posts-listing.tpl.php, views-view-fields--default.tpl.php, views-view-fields--block.tpl.php, views-view-fields--posts-listing--block.tpl.php
* Field Content: Title (ID: title): views-view-field.tpl.php, views-view-field--title.tpl.php, views-view-field--posts-listing.tpl.php, views-view-field--posts-listing--title.tpl.php, views-view-field--block.tpl.php, views-view-field--block--title.tpl.php, views-view-field--posts-listing--block.tpl.php, views-view-field--posts-listing--block--title.tpl.php 

ตัวอย่างเช่น : บล็อกของคุณมีรายชื่อโพสต์ชื่อและไม่มีการจัดรูปแบบสไตล์จากนั้น "ข้อมูลชุดรูปแบบ" แนะนำชื่อviews-view-unformatted--posts-listing--block.tpl.php(นี่เป็นเพียงหนึ่งในหลายชื่อ) คุณสามารถคัดลอกต้นฉบับviews-view-unformatted.tpl.phpแฟ้มแม่แบบ (อยู่ใน / modules / views / ธีม) views-view-unformatted--posts-listing--block.tpl.phpไปยังไดเรกทอรีธีมปัจจุบันของคุณและเปลี่ยนชื่อไฟล์นี้มีชื่อที่แนะนำ: จากนั้นทำการเปลี่ยนแปลงภายในไฟล์เทมเพลตของคุณ หากเทมเพลตนี้ไม่อนุญาตให้ทำการเปลี่ยนแปลงตามที่คุณต้องการให้ค้นหาเทมเพลตอื่น ๆ ตามที่คุณต้องการ

ในท้ายที่สุดถ้าคุณเพิ่มเทมเพลตใหม่ให้สแกนรายการไฟล์เทมเพลตใหม่:

สำคัญ! เมื่อเพิ่มลบหรือเปลี่ยนชื่อไฟล์เทมเพลตจำเป็นต้องทำให้ Drupal ตระหนักถึงการเปลี่ยนแปลงโดยทำการสแกนซ้ำไฟล์ในระบบของคุณ โดยการคลิกที่ปุ่ม "สแกนไฟล์เทมเพลตใหม่" คุณจะสามารถล้างการลงทะเบียนชุดรูปแบบของ Drupal และทำให้กระบวนการสแกนซ้ำ เทมเพลตที่ไฮไลต์ (ในรายการแม่แบบของคุณด้านบนปุ่ม "สแกนไฟล์เทมเพลตใหม่") จะแสดงสถานะใหม่ของระบบของคุณ

นอกจากนี้ Theme Developer Module http://drupal.org/project/devel_themer ที่แนะนำโดย Oswald อาจมีประโยชน์ในการตรวจจับเทมเพลตที่เป็นไปได้เพื่อเปลี่ยนองค์ประกอบเฉพาะตามเกณฑ์ของคุณ ฉันไม่แนะนำโมดูลนี้ที่เปิดใช้งานในสภาพแวดล้อมการผลิต (ในกรณีของฉันแม้ว่าฉันจะปิดการใช้งานโมดูลในสภาพแวดล้อมการทดสอบเพราะดูเหมือนว่าจะมีความขัดแย้งกับมุมมอง แต่เมื่อจำเป็นก็มีประโยชน์มาก)


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

สวัสดีโปรดตรวจสอบรายการเทมเพลตอีกครั้งที่ระบุโดย "ข้อมูลชุดรูปแบบ" ในการตั้งค่า View-> Block มีเทมเพลตหลายอันที่ลงท้ายด้วย--blockชื่อของเขา จำเทมเพลต reescan และจำแม่แบบไว้ในไดเรกทอรีของชุดรูปแบบปัจจุบันของคุณ (คัดลอกแม่แบบที่เลือกจากโมดูล / มุมมอง / ธีม) เทมเพลตต้องมีชื่อที่แนะนำโดยรายการ "ข้อมูลของธีม" มันได้ผล.
cigotete

@drupality ฉันได้เพิ่มตัวอย่างพร้อมขั้นตอนในการตรวจสอบกระบวนการโปรดตรวจสอบในวรรค " ตัวอย่าง " ในคำตอบ
cigotete

ขอบคุณ แต่ฉันไม่สามารถลบค่าเริ่มต้น div class = "content" wrapper ด้วยเช่นกัน ฉันสามารถแก้ไข html ที่สร้างโดยมุมมองเท่านั้น
Codium

2
@ moon.watcher ฉันคิดว่าคุณเข้าใจผิด การสิ้นสุดไฟล์เทมเพลตด้วย "บล็อก" จะไม่ส่งผลกระทบต่อการกำหนดของบล็อกเอง มันทำให้ไฟล์เทมเพลตนั้นเฉพาะกับบล็อกที่มุมมองกำลังแสดงผล (เนื่องจากมุมมองสามารถส่งออกบล็อกจำนวนมากจากมุมมองเดียวกัน) เนื้อหาที่มีธีมจากมุมมองจะถูกส่งไปยังเอ็นจิ้นการบล็อกและถูกห่อในมาร์กอัปที่จัดทำโดย block.tpl.php สิ่งที่พยายามทำ drupality (เช่นเดียวกับฉัน) คือการเปลี่ยนธีมของบล็อกเอง

18

สำหรับผู้ที่ต้องการคำตอบใน D7 ตาม Theme Developer (aka devel_themer) คุณสามารถสร้างการแทนที่ tpl สำหรับบล็อกของมุมมองโดยใช้หลักการ:

block - views-- {view's machine_name} -block

ดังนั้นในตัวอย่างให้คุณจะได้รับ

block - views-- post-listing -block.tpl.php

หากไม่มีช่องว่าง (ฉันไม่สามารถแก้ไขได้อย่างถูกต้องเพื่อให้ทุกอย่างเข้าในบรรทัดได้


ฉันยืนยันว่า noTxt ถูกต้องไปที่ส่วนบล็อกและแก้ไขบล็อก URL ควรแสดงชื่อบล็อกของคุณด้วยเครื่องหมายขีดล่าง my_view_name-block แทนที่ขีดล่างเพื่อให้ my-view-name และใช้รูปแบบนี้: "block - views - my-view-name = block.tpl.php"
Nevos

2
ใช่นี่คือคำตอบที่ถูกต้องมากขึ้นดังนั้น: block - views - VIEWNAME-MACHINENAMEOFDISPLAY.tpl.php โปรดทราบว่าจะมีเครื่องหมายขีดกลางเดียวชื่อเครื่อง ชื่อเครื่อง = โดยค่าเริ่มต้นจะตั้งชื่อเป็น block, block-1 และอื่น ๆ แต่คุณสามารถเปลี่ยนชื่อได้ใน UI มุมมอง
Nikit

7

เมื่อสิ้นสุดครึ่งชั่วโมงเปลี่ยนชื่อ tpl นี่คือข้อสรุปสุดท้ายของฉัน:

block--views--[view-name]-[display-name].tpl.php

[view-name] - [display-name] สามารถพบได้เช่น noTxt กล่าวหรือเข้าร่วมกับ '-' ชื่อ id ของมุมมองและชื่อ id ของมุมมองที่แสดง -block ที่ท้ายไม่ถูกต้อง .


5

ใน Drupal 8

ป้อนคำอธิบายรูปภาพที่นี่

เทมเพลตของฟิลด์จะเป็น:

มุมมองมุมมองเขต - [ดูชื่อ] - บล็อก 1.html.twig


คำถามนี้เกี่ยวกับ D7 ... ทำไม Drupal 8ในคำตอบของคุณ?
Pierre.Vriens

@ Pierre.Vriens เนื่องจากคำถามเป็นที่นิยมในมุมมอง (ไม่ใช่โมดูล) ฉันคิดว่าฉันควรเพิ่มคำตอบของรุ่น D8 ที่นี่
ไม่มี Sssweat

ตอนนี้เป็นแนวคิดที่น่าสนใจ ... แล้วการทำเช่นเดียวกันกับคำถาม +21K เหล่านี้ล่ะ
Pierre.Vriens

@ Pierre.Vriens ส่วนใหญ่ไม่ได้รับความนิยม
ไม่มี Sssweat

1
เพิ่ม 8 แท็ก, ดี;)
Codium

1

block--views--[view-name]-[display-name].tpl.phpblock--views--[view-name]-[machinename].tpl.phpควรจะเปลี่ยนเป็น

คุณจะพบชื่อเครื่องจากส่วนขั้นสูงของมุมมองของคุณซึ่งเป็นชื่ออื่น


1

รูปแบบชื่อไฟล์ที่อธิบายข้างต้นใช้งานได้เว้นแต่ว่าชื่อมุมมองของคุณ + ชื่อที่แสดงมีความยาวเกินจำนวนอักขระ !! ฉันถูกพบโดยสิ่งนี้และไม่สามารถหาสาเหตุที่ไฟล์เทมเพลตที่ลงท้ายด้วย ... block.tpl.phpกำลังทำงานและจอแสดงผลต่อไปนี้ ... block-1.tpl.phpไม่ทำงาน

ปรากฎว่า Views แทนที่ชื่อเครื่องด้วย MD5 hash หากชื่อยาวเกินไป หากคุณต้องการให้แน่ใจว่าชื่อเทมเพลตที่คุณควรใช้เพิ่ม$conf['theme_debug'] = TRUE;ใน settings.php ของคุณแล้วมองไปที่แหล่งที่มาของหน้า หากคุณพบสิ่งที่ชอบblock--views--d131dd02c5e6eec4.... คุณควรย่อชื่อเครื่องของมุมมองให้สั้นลง (หากคุณจัดการทำอย่างนั้นได้ ... ไม่ใช่ชื่อที่มนุษย์อ่านได้) หรืออื่น ๆ คุณต้องใช้ไฟล์เทมเพลตที่มีชื่อโง่

ดูสิ่งนี้ด้วย

ชื่อเครื่องของ Views Block กำลังถูก "hashed" (?)

และ

https://www.drupal.org/node/346602


0

ตรวจสอบหน้านี้https://www.drupal.org/node/1089656และข้อมูลเกี่ยวกับขีดล่างที่มุมมองใช้:

นอกจากนี้ยังมีอีกตัวอย่างหนึ่งกับ Views หากคุณมีบล็อกที่สร้างขึ้นด้วยมุมมองที่มีชื่อมุมมอง "front_news" และ id ที่แสดง "block_1" ดังนั้นคำแนะนำเบ็ดธีมจะเป็น: block - views - front-news-block-1 tpl.php (สังเกตเห็นเมื่อคุณขีดเส้นใต้ใน id ที่แสดงหรือในชื่อมุมมอง - คุณต้องแปลงมันเป็นเส้นประเดียว)


0

สำหรับบล็อกภายในแผงบานหน้าต่างโซลูชันที่ noTxt ให้บริการและอื่น ๆ ไม่ทำงาน ไวยากรณ์จะเป็น (ไม่มีขีดล่าง!):

panels-pane-block--views-[view-name]-[display-machine-name].tpl.php

ขอขอบคุณผู้ใช้ 3074436 ที่ให้การตั้งค่า $ conf ['theme_debug'] เพื่อที่จะหารูปแบบที่โดดเด่นของเคสนี้


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