ฉันจะลบชื่อ / ส่วนหัวของหน้าได้อย่างไร


10

ใน Drupal 8 มีวิธีง่าย ๆ ในการกำหนดค่าหน้าเพื่อให้ส่วนหัว / ชื่อหน้าไม่แสดงบนหน้าหรือไม่?

ฉันได้สร้างเพจพื้นฐานโดยมี / home เป็นชื่อแทนพา ธ และชื่อหน้าแรก ฉันตั้งมันเป็นหน้าแรก อย่างไรก็ตามจะแสดง 'หน้าแรก' ที่ด้านบนของหน้าด้านล่าง navbar และ breadcrumb

จำเป็นต้องสร้างธีมย่อยของธีม 'Bootstrap' และเพิ่ม CSS แบบกำหนดเองหรือไม่?

คำตอบ:


28

Drupal 8 วางชื่อหน้าในบล็อกของตัวเอง (เรียกว่าชื่อหน้า) คุณสามารถควบคุมเวลาและสถานที่ที่บล็อกนั้นจะแสดงบนหน้าเลย์เอาต์บล็อก: / admin / โครงสร้าง / บล็อก


2

คุณยังสามารถใช้โมดูลนี้สำหรับ drupal 8 https://www.drupal.org/project/exclude_node_title

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

1
ขอบคุณมากที่แนะนำโมดูลนี้ naveen ฉันกำลังมองหาสิ่งที่เรียบง่ายและไม่เหมือนใครซึ่งเป็นเหตุผลที่ฉันเลือกคำตอบของนักเคลื่อนไหว อย่างไรก็ตามข้อเสนอแนะของคุณดูเหมือนจะทำงานได้ดีเท่า ๆ กันและเป็นที่ต้องการจริงหากต้องการซ่อนหัวเรื่องตามประเภทเนื้อหา ฉันได้ทำบุ๊กมาร์กกับโมดูลนั้นในกรณีที่จำเป็นสำหรับฉัน ขอบคุณมากสำหรับความช่วยเหลือของคุณ!
kvjava1

ฉันจะเตือนผู้ใช้เกี่ยวกับโมดูลนี้ เราได้ติดตั้งและใช้งานมาระยะหนึ่งแล้ว แต่ได้พบกับความประหลาดใจสองสามประการ: 1. มันไม่ได้รวมเข้ากับมุมมองดังนั้นคุณไม่สามารถสร้างมุมมองที่บ่งชี้ว่าโหนดใดที่ยกเว้นชื่อ ( drupal.org/) project /lude_node_title / problems / 3065469 ) และ 2 มันไม่ได้ถูกจัดเก็บไว้ในการแก้ไขดังนั้นหากคุณกำลังดูที่ประวัติการแก้ไขของโหนดมันจะถูกแสดงด้วยชื่อเรื่องไม่ว่าจะเกิดอะไรขึ้นแม้ว่าการแก้ไขนั้นจะถูกตั้งค่าเป็น ยกเว้นชื่อโหนด ( drupal.org/project/exclude_node_title/issues/3077257 )
user1359

1

คุณสามารถทำได้ทั้งหมดด้วย CSS คุณต้องกำหนดเป้าหมายโหนดที่คุณใช้เป็นหน้าแรก

ตอนนี้ Drupal-7 กำลังสร้างคลาสเฉพาะสำหรับแต่ละโหนด และด้วยวิธีนี้มันง่ายต่อการกำหนดเป้าหมายแต่ละโหนดและเราสามารถใช้ CSS เฉพาะกับโหนดนั้น

แต่ใน Drupal 8 ไม่สามารถใช้งานคุณสมบัตินี้ได้ดังนั้นเราต้องเพิ่มสิ่งนี้ ทำตามขั้นตอนต่อไปนี้ ฉันกำลังแสดงสิ่งนี้โดยใช้ชุดรูปแบบ Bartik เนื่องจากฉันไม่คุ้นเคยกับรูปแบบ Bootstrap คุณสามารถทำกับชุดรูปแบบ bootstrap ด้วย มันเป็น CSS ที่บริสุทธิ์ดังนั้นจึงไม่จำเป็นต้องมีชุดย่อย

1. เพิ่มฟังก์ชันลงในไฟล์ bartik.theme

if ($node = \Drupal::request()->attributes->get('node')) {
    $variables['attributes']['class'][] = 'page-node-' . $node->id();
  }

ในส่วนของ

function bartik_preprocess_html(&$variables) {   

}

เหตุใดฉันจึงแสดงวิธีนี้เนื่องจากมีรหัสอื่นอยู่แล้วfunction bartik_preprocess_html(&$variables)ดังนั้นให้เพิ่มฟังก์ชันนี้เป็นบรรทัดสุดท้าย

ล้างแคช

2. รับ CSS สำหรับโหนดนั้น

ตอนนี้ถ้าคุณทำInspect elementบนโหนดนั้น คุณสามารถหาชั้นเรียนได้ใน<body></body>ส่วนpage-node-XXของ

3. ไปที่ core / themes / bartik / css / components / page-title.cssและเพิ่มรหัสต่อไปนี้ในนั้น

.page-node-XX .page-title {
 display: none;
}

ล้างแคช

ตอนนี้ด้วยวิธีนี้คุณสามารถกำหนดเป้าหมายโหนดนั้นและคุณสามารถทำ CSS อะไรก็ได้ที่คุณต้องการใช้

เครดิตสำหรับรหัสฟังก์ชัน: ลิงก์


CodeNext ขอบคุณมากสำหรับคำตอบโดยละเอียดของคุณ จริงๆแล้วฉันสามารถทำสิ่งที่ฉันต้องทำก่อนหน้านี้ในฐานะแฮ็คด่วนโดยเพิ่ม CSS ต่อไปนี้ไปยังไฟล์ styles.css ของส่วนย่อยของฉัน:. page-header {display: none; } อย่างไรก็ตามคำตอบของนักบัญชีดูเหมือนจะนำเสนอวิธีการที่ง่ายที่สุด ฉันชอบคำตอบของคุณเช่นกันเพราะช่วยให้เข้าใจถึงการทำงานของพวกเขาใน Drupal8 ขอบคุณอีกครั้ง! ฉันซาบซึ้งจริงๆ
kvjava1
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.