การลบบล็อกเนื้อหาหลักในหน้าแรก


17

ฉันใหม่สำหรับ Drupal 7 และฉันต้องการแทนที่ค่าเริ่มต้นของ frontpage main content blockด้วยบล็อกที่เทียบเท่าที่สร้างจาก Views (เพิ่มการควบคุมบล็อกให้มากขึ้น)

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

ความพยายามที่จะลบmain content blockโดยการกำหนดค่าให้ไม่แสดงบน<front>ไม่ทำงานและในตอนนี้วิธีแก้ปัญหาเดียวที่ฉันพบคือ CSS ต่อไปนี้:

.front #block-system-main {
  display:none;
}

ฉันชอบโซลูชันแฮ็คที่น้อยกว่า มีใครแนะนำบ้างไหม


ฉันมีปัญหาเดียวกันทุกประการ
เจดับบลิว

ฉันไม่มีชื่อเสียงพอที่จะตอบคำถามนี้ แต่ฉันต้องการ 2 'ดูรายการเป็นบล็อก' และไม่มีเนื้อหาอื่น ๆ ดังนั้นนี่คือทางเลือกอื่น: drupal.org/node/2089911#comment-7868495 (จากนั้นแสดงรายการหรือรายการเป็นบล็อก)
JW

คำตอบ:


24

ขออภัยนั่นไม่ใช่วิธีที่จะทำ

แทนที่จะสร้างการแสดงบล็อกในมุมมองให้สร้างการแสดงหน้า เลือกเส้นทางสำหรับหน้ามุมมองของคุณตัวอย่างเช่น "บ้าน" และบันทึกมุมมอง ถัดไปคุณไปที่ / admin / config / system / site-information และเปลี่ยนค่าสำหรับ 'หน้าแรกเริ่มต้น' (อาจบอกว่า "node" ตอนนี้) เป็นพา ธ ที่คุณเลือกสำหรับมุมมองของคุณ ("home")

เมื่อคุณทำตามวิธีนี้เนื้อหาหลักในหน้าแรกของคุณจะเป็นมุมมอง


ฉันเข้าใจแล้วฉันลองใช้ข้อเสนอแนะของคุณแล้วมันทำงานได้อย่างสมบูรณ์แบบและดูเหมือนชัดเจนมากในขณะนี้ ขอบคุณมาร์ค
irishbuzz

ยินดีต้อนรับฉันดีใจที่ได้ช่วย
marcvangend

ขอบคุณแน่นอนทางออกที่สะอาดที่สุดที่นี่! บางคนพูดถึงการล้อเล่นในโค้ดหลักหรือตั้งค่าสไตล์ชีท ฉันรู้ว่าต้องมีวิธีที่ง่ายกว่านี้
Organiccat

1
@MarioAwad ทางเทคนิคใช่ นั่นคือการตั้งค่าหน้าแรกของ Drupal อย่างไรก็ตามหากโมดูลทั้งหมดสร้าง URL และลิงก์กับurl()และl()ฟังก์ชั่นได้อย่างถูกต้องDrupal จะดูแลและเชื่อมโยงไปยัง www.example.com ทุกครั้งที่ได้รับ www.example.com/path/to/view หากคุณต้องการโมดูลGlobal Redirectจะเปลี่ยนเส้นทางไปยังหน้าแรกในกรณีที่มีคนขอเส้นทางอย่างเต็มรูปแบบ
marcvangend

1
@marcvangend ขอขอบคุณสำหรับการชี้แจงเพิ่มเติมและตัวชี้ไปยังการเปลี่ยนเส้นทางทั่วโลกซึ่งแก้ปัญหาเส้นทางคู่ ไชโย
Mario Awad

2

ก่อนอื่นคุณต้องลบเนื้อหาบ้านเริ่มต้นนี่คือวิธีทำ:

<?php
function MYTHEME_OR_MODULE_preprocess_page(&$variables) {
  if ($variables['is_front']) {
    $variables['title'] = '';
    unset($variables['page']['content']['system_main']['default_message']);
  }
}

ลบเนื้อหาเริ่มต้นของหน้าแรก

จากนั้นสร้างมุมมองบล็อกที่คุณต้องการ .. จากนั้นไปที่บล็อก .. แสดงมุมมองบล็อกนี้ในภูมิภาค "เนื้อหา" และ จำกัด เนื้อหานี้เป็น "เฉพาะหน้าต่อไปนี้" และเขียน <front>

แค่นั้นแหละ



0

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

การให้ความยุติธรรมกับคำตอบที่ได้รับการยอมรับวิธีการนั้นเป็นวิธีปกติในการทำ ผลลัพธ์ที่ได้จะเหมือนกัน


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