ฉันกำลังเขียนคำถามนี้เพราะฉันเห็นความสับสนทั่วชุมชน Drupal เกี่ยวกับ "ผู้จัดการเพจคืออะไร" และ "แผงคืออะไร"
ฉันกำลังเขียนคำถามนี้เพราะฉันเห็นความสับสนทั่วชุมชน Drupal เกี่ยวกับ "ผู้จัดการเพจคืออะไร" และ "แผงคืออะไร"
คำตอบ:
Ctools
ในCtoolsจะมีโมดูลย่อยชื่อ "ผู้จัดการเพจ" โมดูลนี้ที่มันหลักเป็นอินเตอร์เฟซผู้ใช้แบบกราฟิกhook_menu ที่ $ ช่วยให้คุณสามารถสร้างเส้นทางใหม่ในระบบหรือครอบครองบางส่วนของ Core
ผู้จัดการหน้า
เมื่อผู้จัดการเพจจัดการเส้นทางให้คุณแล้วมันสามารถทำสิ่งต่าง ๆ ได้หลายอย่าง ออกจากกล่องมันสามารถให้เปลี่ยนเส้นทางให้คุณ กรณีการใช้งานทั่วไปอย่างหนึ่งสำหรับเรื่องนี้คือการปฏิเสธการเข้าถึงโหนดที่ขาดการใช้งานที่เหมาะสมเนื่องจากไม่ได้หมายถึงให้ดูด้วยตนเองเช่น "กล่องข้อมูลจริง" หรือ "โหนดรูปภาพ" อีกวิธีหนึ่งคือเปลี่ยนเส้นทางจากมุมมองคำไปเป็นการค้นหา Solr ของคำเดียวกัน
หนึ่งในผลประโยชน์หลักของหน้าผู้จัดการก็คือว่ามันแนะนำวิธีการจัดการกับ "บริบท" เพื่อไม่ให้สับสนกับโมดูลบริบท ไพ่ที่นี่เป็นที่บานหน้าต่างซึ่งเป็น "บล็อกอย่างชาญฉลาดเล็กน้อย" สามารถประกาศการอ้างอิงของพวกเขาไปยังระบบและพวกเขามีข้อโต้แย้งที่เกิดขึ้นจริง (เรียกว่าบริบท) ผ่านในการพึ่งพาการฉีดสไตล์
สำหรับผู้ที่ไม่คุ้นเคยกับ DI แต่คุ้นเคยกับ Drupal สิ่งนี้ช่วยให้คุณไม่จำเป็นต้องใช้ menu_get_object อีกครั้งเพื่อรับ "โหนดหนึ่งและโหนดเดียวที่อ้างอิงจากเส้นทางเมนู" เกิดอะไรขึ้นถ้ามีมากกว่าหนึ่งโหนดในเส้นทาง? หรือถ้าคุณต้องการบล็อกฐานบนโหนดจากการอ้างอิงเอนทิตี สิ่งนี้กลายเป็นปัญหาที่ไม่ใช่กับตัวจัดการหน้าทำให้บล็อกทั้งหมด (บานหน้าต่าง) มีความยืดหยุ่นมากขึ้นและสามารถใช้งานได้อีกครั้ง
แผง
ส่วนใหญ่กรณีการใช้งานทั่วไป แต่เป็นมือมากกว่ารูปแบบและการแสดงผลของเส้นทางเพื่อแผ่น พาเนลจัดเตรียมเครื่องมือเพื่อกำหนดโครงร่างทั้งในโค้ดหรือในเบราว์เซอร์โดยตรงและให้คุณวางเนื้อหาลงในเบราว์เซอร์โดยตรง
ข้อสรุป
โมดูลทั้งสองนี้มีประสิทธิภาพมากและมีเอกสารค่อนข้างไม่ดีซึ่งทำให้ผู้คนจำนวนมากผิดหวังกับพวกเขา ความเข้าใจวิธีการใช้พวกเขาเป็นอย่างไรดีคุ้มค่าถ้าคุณกำลังสร้างเว็บไซต์ที่มีขนาดใหญ่โดยเฉพาะอย่างยิ่งตั้งแต่แนวทางของพวกเขาในการจัดการ "หน้าเว็บ" เช่นเดียวกับรูปแบบลักษณะเหมือนพวกเขากำลังจะเข้าสู่ Drupal 8 หลักมารยาทของEclipseGC 's คิดริเริ่ม SCOTCH . โครงการ sandboxที่เกี่ยวข้อง
อ่านเพิ่มเติม
ตัวอย่างของสิ่งที่น่าสนใจอื่น ๆ ที่เราสามารถทำได้ด้วยเครื่องมือเหล่านี้:
$page_data = page_manager_get_current_page()
เป็นที่ที่เงินอยู่โดยเฉพาะอย่างยิ่ง$page_data['handler']
ใน Drupal 7 ตัวจัดการหน้าเป็นพื้นฐานของโมดูลการติดตั้ง
" Learn Page manager " เป็นชุดวิดีโอที่น่าสนใจ (และน่าทึ่ง) พวกเขามีหัวข้อต่าง ๆ ที่เกี่ยวข้องกับโมดูลแผง นี่คือบทสรุปของวิดีโอทั้งหมดเกี่ยวกับหัวข้อนี้ (อ้างจากลิงก์ด้านบน):
- ผู้จัดการเพจช่วยให้คุณสามารถรวบรวมและจัดการข้อมูลเชิงบริบทด้วยวิธีที่ยืดหยุ่นและสอดคล้องกัน มันเป็นส่วนสำคัญของการสร้างโครงสร้างพื้นฐานบนเว็บไซต์ Drupal และคุณควรรู้วิธีใช้โมดูลนี้
- ซีรี่ส์ screencast นั้นมุ่งเป้าไปที่นักพัฒนา Drupal ที่มีประสบการณ์
- ตอนที่ 1, 2 และ 3 แนะนำแนวคิดพื้นฐานที่สุดเช่นหน้ากำหนดเองชุดตัวเลือกกฎการเลือกและวัตถุตามบริบท (บางส่วน)
- ตอนที่ 4, 5, 6 และ 7 พูดคุยเกี่ยวกับพาเนลโดยเน้นการรวม Views แต่ยังมีคำบางคำเกี่ยวกับการแคชที่มีประสิทธิภาพ
- ตอนที่ 8 และ 9 เกี่ยวกับการควบคุมการเข้าถึงรายการเมนูและโมดูลการจัดการบริบทซึ่งมีประโยชน์น้อยมาก แต่ไม่ค่อยมีประโยชน์
- ตอนที่ 10 และ 11 พูดถึงเพิ่มเติมเกี่ยวกับการใช้วัตถุตามบริบทในตัวจัดการหน้ารวมถึงการใช้มุมมองเป็นบริบท นี่คือ imho ซึ่งพลังที่แท้จริงในตัวจัดการหน้าคือ
- ตอนที่ 12 และ 13 รวบรวมบิตและชิ้นส่วนต่าง ๆ เช่นวิธีใช้แผงเพื่อจัดเรียงรูปแบบการแก้ไขโหนดการตั้งค่าการนำเข้า / ส่งออกได้อย่างง่ายดายและโมดูลพิเศษบางอย่างที่สามารถใช้กับตัวจัดการหน้า
อ้างถึงการอธิบายพาเนล: ภาพรวมสำหรับนักพัฒนา Drupalสำหรับคำอธิบายที่ยอดเยี่ยมเกี่ยวกับโมดูลพาเนล
ใน Drupal 8 ตัวจัดการหน้าได้กลายเป็นโมดูลที่แยกจากกันในขณะที่ก่อนหน้านี้ (จนถึง Drupal 7) มันเป็นส่วนหนึ่งของโมดูลCTools นี่คือคำพูดเพิ่มเติมจากหน้าโครงการ (ที่เกี่ยวข้องกับ D8):
รองรับการสร้างหน้าใหม่และช่วยให้การวางบล็อกภายในหน้านั้น
เช่นเดียวกับตัวจัดการหน้าของ Drupal 7 มันให้แนวคิดของ "ตัวแปรหน้า" แต่ละแบบมีเงื่อนไขการเลือกของตัวเอง
นอกจากนี้ยังสามารถใช้ในการครอบครองหน้าที่มีอยู่เช่นการแทนที่ / node /% เพื่อเปลี่ยนสิ่งที่จะปรากฏเมื่อดูโหนด
มันใช้หลัก
Conditions
,Context
และBlocks
API เพื่อบรรลุเป้าหมายนี้