ตัวจัดการหน้ากับพาเนลแตกต่างกันอย่างไร


31

ฉันกำลังเขียนคำถามนี้เพราะฉันเห็นความสับสนทั่วชุมชน Drupal เกี่ยวกับ "ผู้จัดการเพจคืออะไร" และ "แผงคืออะไร"

คำตอบ:


48

Ctools

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

ผู้จัดการหน้า

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

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

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

แผง

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

ข้อสรุป

โมดูลทั้งสองนี้มีประสิทธิภาพมากและมีเอกสารค่อนข้างไม่ดีซึ่งทำให้ผู้คนจำนวนมากผิดหวังกับพวกเขา ความเข้าใจวิธีการใช้พวกเขาเป็นอย่างไรดีคุ้มค่าถ้าคุณกำลังสร้างเว็บไซต์ที่มีขนาดใหญ่โดยเฉพาะอย่างยิ่งตั้งแต่แนวทางของพวกเขาในการจัดการ "หน้าเว็บ" เช่นเดียวกับรูปแบบลักษณะเหมือนพวกเขากำลังจะเข้าสู่ Drupal 8 หลักมารยาทของEclipseGC 's คิดริเริ่ม SCOTCH . โครงการ sandboxที่เกี่ยวข้อง

อ่านเพิ่มเติม

ตัวอย่างของสิ่งที่น่าสนใจอื่น ๆ ที่เราสามารถทำได้ด้วยเครื่องมือเหล่านี้:

  1. หากใช้บริบทเป็นเครื่องมือการแบ่งส่วนพาเนลสามารถทำงานควบคู่กับมันและใช้เป็นเครื่องมือการจัดหน้า
  2. แผงสามารถโต้ตอบกับชุดการแสดงผลเพื่อให้ UI การลากและวางที่ดี
  3. ผู้จัดการหน้าและการบริหารบริบทสามารถช่วยสร้างในเมนูที่ละเอียดอ่อน "บริบท" และสิ่งที่เป็นประโยชน์อื่น ๆ สำหรับผู้ดูแลระบบ / บรรณาธิการ

3
ฉันไม่เคยเข้าใจ / ใช้เครื่องมือจัดการเพจ - มันยอดเยี่ยมที่ได้รู้ว่ามันคืออะไร ขอบคุณสำหรับการเขียนสั้น ๆ !
Chapabu

2
$page_data = page_manager_get_current_page()เป็นที่ที่เงินอยู่โดยเฉพาะอย่างยิ่ง$page_data['handler']
mpdonadio

1

ใน 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และBlocksAPI เพื่อบรรลุเป้าหมายนี้

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