Score:1

ซ่อนแถบเครื่องมือผู้ดูแลระบบใน iFrame

ธง cn

เป็นไปได้ไหมใน Drupal 8 ที่จะซ่อนแถบเครื่องมือผู้ดูแลระบบเมื่อโหลดไซต์ภายใน iFrame เช่น ผ่านการโต้แย้ง? :-)

ฉันคิดเกี่ยวกับการใช้การประมวลผลล่วงหน้าบางประเภทบนหน้าเว็บที่กำลังแสดงผลภายใน iFrame แต่สิ่งนี้จะไม่ทำงานเนื่องจาก Drupal แคช html ฉันยังคิดที่จะทำภายใน Javascript แต่ฉันไม่ต้องการรวมไฟล์จาวาสคริปต์ในทุกหน้า แต่เป็นค่าเริ่มต้น

อาจมีบางคนรู้ hook_() ซึ่งจะอนุญาตให้ฉันจัดการ css แต่ไม่ได้รับแคช

za flag
คุณสามารถใช้ธีมอื่นสำหรับผู้ดูแลระบบ/ผู้ใช้ได้หรือไม่? https://www.drupal.org/project/toolbar_visibility
cn flag
ไม่ เนื่องจากนี่เป็นการใช้งานสำหรับโมดูลสนับสนุน ฉันไม่ต้องการบังคับให้ผู้ใช้ติดตั้งธีมอื่น
Score:3
ธง cg

ฉันจะใช้วิธีการที่คล้ายกันกับ @Hudri และเข้าถึงไซต์ด้วย https://www.mysite.com?is_iframe=true.

จากนั้น เพิ่มคลาสในแท็ก body หากมีตัวเลือกคำขอ:

/**
 * ใช้ hook_preprocess_HOOK()
 */
ฟังก์ชัน MYMODULE_preprocess_html(&$ตัวแปร) {
  $is_iframe = \Drupal::request()->query->get('is_iframe');
  ถ้า ($is_iframe === 'จริง') {
    $variables['attributes']['class'][] = 'hide-admin-toolbar';
  }
}

ถ้าฉันจำไม่ผิด Drupal จะสร้าง HTML ใหม่เมื่อคุณเข้าถึง https://www.mysite.com?is_iframe=true เทียบกับ https://www.mysite.com.


อ้างอิง:

bw flag
ทางออกที่ดี! ฉันคิดว่าคุณกำลังใช้ CSS เพื่อซ่อนแถบเครื่องมือนั่นอาจทำให้คุณรำคาญเล็กน้อยหากคุณใช้ admin_toolbar ด้วย อีกทางเลือกหนึ่งคือการป้องกันไม่ให้แสดงผลเลย เช่น: `if ($is_iframe === 'จริง') { if (isset($variables['page_top']['toolbar'])) { unset($variables['page_top']['toolbar']); }}`
Score:2
ธง ru

สิ่งนี้ควรทำได้ด้วย a บริบทแคช:

Drupal core มีบริบทแคชอยู่แล้ว
url.query_args
ซึ่งสามารถใช้สำหรับพารามิเตอร์การค้นหาของคุณ เช่น URL
https://www.mysite.com?is_iframe=true
จะเป็นบริบทแคช
\Drupal::service('cache_context.url.query_args')->getContext('is_iframe');

AFAIK cache_context url.query_args เปิดใช้งานอยู่แล้วตามค่าเริ่มต้นใน Drupal core ดังนั้นคุณจะต้องเพิ่มบริบทแคชนี้ไปยังอาร์เรย์เรนเดอร์ในฟังก์ชันการประมวลผลล่วงหน้าที่เหมาะสม

โปรดทราบว่าโดยทั่วไปบริบทของแคชจะไม่ทำงานกับโมดูล Internal Page Cache!

สำหรับการผลิต คุณควรปรับแต่งสิ่งนี้ด้วยบริบทแคชที่กำหนดเองและเฉพาะเจาะจงมากขึ้น url.query_args:my_query_param เพื่อจำกัดบริบทแคชที่ไม่จำเป็น (บอทใบ้อาจเรียกการคำนวณบริบทแคช gazillion เป็นอย่างอื่น)

โพสต์คำตอบ

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