Score:1

จะเพิ่มคลาสให้กับบล็อกการดูหลายรายการโดยใช้กิ่งไม้ได้อย่างไร

ธง br

ฉันมีสี่ช่วงตึกเพื่อดู ฉันต้องการเพิ่มคลาส 'fancy-body' ให้กับทั้งสี่ช่วงตึก ฉันจะเพิ่มสิ่งนั้นได้อย่างไร

view_id : หมวดหมู่

display_id ของ ของบล็อก: block_1, block_2, block_3, block_4

ฉันรู้ว่าฉันสามารถเพิ่มคลาสได้โดยสร้างไฟล์เทมเพลต twig แต่ละไฟล์สำหรับแต่ละบล็อก แบบนี้,

block--views-block--categories-block-1.html.twig
block--views-block--categories-block-2.html.twig
block--views-block--categories-block-3.html.twig
block--views-block--categories-block-4.html.twig

เป็นไปได้ไหมที่จะบรรลุในไฟล์เทมเพลตกิ่งเดียว? ฉันจะประสบความสำเร็จได้อย่างไร

ต้องการความช่วยเหลือ ขอบคุณ!

Akshay avatar
us flag
จะเกิดอะไรขึ้นถ้าคุณเพิ่มคลาสลงในบล็อกทั้งหมดที่แสดงในมุมมองด้วยตนเองในส่วนขั้นสูง คุณจะสร้างไฟล์ทวิกเพื่อเพิ่มคลาสหรือไม่?
Steve Siddu avatar
br flag
ฉันต้องการจัดการโครงสร้างของบล็อกทั้งหมดของมุมมองเฉพาะ
Akshay avatar
us flag
ตกลง. จากนั้นคุณจะต้องสร้างไฟล์ทวิกเพื่อแก้ไขโครงสร้าง HTML โปรดแก้ไขคำถามของคุณ เนื่องจากระบุว่าจะเพิ่มชั้นเรียนเท่านั้น
Score:3
ธง cn

หากเป็นเพียงชั้นเรียนที่คุณต้องการ โมดูลที่กล่าวถึงในคำตอบของโจเซฟก็เพียงพอแล้ว

หากคุณต้องการแก้ไขเพิ่มเติมและต้องการไฟล์เทมเพลตแบบกำหนดเอง คุณสามารถปรับใช้ได้ hook_theme_suggestions_HOOK().

สิ่งที่ต้องการ:

ฟังก์ชัน module_theme_suggestions_block (ตัวแปร $ อาร์เรย์) {
  $ข้อเสนอแนะ = [];

  ถ้า ($variables['elements']['#base_plugin_id'] == 'views_block') {
    ถ้า (preg_match('/views_block:categories-block_[0-9]+/', $variables['elements']['#plugin_id'])) {
      $suggestions[] = 'block__views_block__categories_all_blocks';
    }
  }

  ส่งคืนคำแนะนำ $;
}

จากตัวอย่างข้างต้น ไฟล์เทมเพลตเดี่ยวของคุณจะได้รับการตั้งชื่อ block--views-block--categories-all-blocks.html.twig.

Steve Siddu avatar
br flag
ชื่อฟังก์ชันควรเป็นอะไร ถ้าชื่อโมดูลคือ "XYZ" `XYZ_theme_suggestions_block()` ใช่ไหม
cn flag
ใช่ถูกแล้ว
Steve Siddu avatar
br flag
คลาสและรหัสที่เพิ่มใน `block--views-block--categories-all-blocks.html.twig` กำลังแสดงอยู่ในไซต์ drupal คุณช่วยบอกฉันได้ไหมว่าฉันต้องเพิ่มรหัสนั้นที่ไหน อยู่ในไฟล์ใด หรือในโฟลเดอร์ใด ฉันเพิ่มไฟล์นั้นในไฟล์ `XYZ.module` ขอบคุณ !
Steve Siddu avatar
br flag
ทุกอย่างควรเหมือนเดิมหรือต้องเปลี่ยน? เช่น `#base_plugin_id` และ `#plugin_id` คืออะไร
cn flag
คุณไม่จำเป็นต้องเปลี่ยนแปลงอะไร มันตรงกับ view id และ display id จากไฟล์เทมเพลตในคำถาม
Score:2
ธง in

มีหลายโมดูลที่ให้คุณเพิ่มคลาสในบล็อกผ่านผู้ดูแลระบบ ขึ้นอยู่กับตำแหน่งที่คุณเพิ่มบล็อก:

โมดูลแอตทริบิวต์ส่วนประกอบของ Layout Builder ช่วยให้ผู้แก้ไขสามารถเพิ่มได้ แอตทริบิวต์ HTML ของส่วนประกอบตัวสร้างเลย์เอาต์ (บล็อก) คุณสมบัติสามารถ จะถูกเพิ่มใน 1) องค์ประกอบบล็อก (ด้านนอก) 2) ชื่อบล็อก และ 3) องค์ประกอบเนื้อหาบล็อก (ภายใน)

Block Classes อนุญาตให้ผู้ใช้เพิ่มคลาสเพื่อบล็อกชื่อ เนื้อหา และ wrapper ของบล็อกใด ๆ ผ่านอินเทอร์เฟซการกำหนดค่าของบล็อก นี้ โมดูลขยายคุณสมบัติของโมดูลคลาสบล็อก

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา