Score:0

เปลี่ยนโหมดมุมมองของฟิลด์สื่อโดยทางโปรแกรม

ธง cn

ฉันกำลังพยายามเปลี่ยนโหมดมุมมองของฟิลด์สื่อโดยทางโปรแกรม ฉันได้สร้างโหมดการดูที่เรียกว่า 'modal' ฉันสร้าง mytheme_preprocess_media hook และพยายามเปลี่ยนโหมดมุมมองด้วยวิธีต่างๆ เช่น

mytheme_preprocess_media(&$ตัวแปร) {
    $variables['view_mode'] = 'โมดอล';
    $variables['elements']['#view_mode'] = 'โมดอล';
    $variables['content']['field_media_oembed_video']['#view_mode'] = 'โมดอล';
}

แต่ดูเหมือนจะไม่มีใครทำงาน การใช้ xdebug ฉันรู้แน่นอนว่าฮุกนี้กำลังถูกโจมตี แต่ด้วยเหตุผลบางอย่าง จะใช้โหมดมุมมองเริ่มต้นเสมอ

ฉันจะเปลี่ยนโหมดมุมมองของฟิลด์สื่อโดยทางโปรแกรมได้อย่างไร

sonfd avatar
in flag
คุณได้ลอง [hook_entity_view_mode_alter()](https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21entity.api.php/function/hook_entity_view_mode_alter/9.3.x) แล้วหรือยัง
Matt avatar
cn flag
@sonfd ฉันมี แต่ hook นั้นไม่ได้ถูกเรียกใช้โดยฟิลด์สื่อของฉัน
4uk4 avatar
cn flag
เขตข้อมูลไม่มีโหมดมุมมอง เอนทิตีที่แสดงผลมี ค่าที่แสดงในคำถามเป็นเพียงข้อมูลเท่านั้น คุณไม่สามารถเปลี่ยนแปลงได้ อย่างไรก็ตาม หากฟิลด์กำลังแสดงเอนทิตีที่อ้างอิง คุณสามารถลองเปลี่ยนโหมดมุมมองของสิ่งเหล่านั้นได้ หากคุณพบสิ่งเหล่านั้นในเดลตาของฟิลด์ แต่ขึ้นอยู่กับการกำหนดค่าฟิลด์และคุณต้องเปลี่ยนคีย์แคชด้วยเช่นกัน
4uk4 avatar
cn flag
ตกลง เพิ่งตรวจสอบชื่อฟิลด์และพบว่าเป็นฟิลด์หลักที่ติดตั้งไว้ล่วงหน้า และประเภทฟิลด์นี้ไม่ใช่ฟิลด์อ้างอิง ฉันคิดว่าคุณหลงทางโดยสิ้นเชิงและจำเป็นต้องเริ่มต้นใหม่อีกหนึ่งระดับในโหนด (หากสื่ออยู่ในประเภทเนื้อหา)
Matt avatar
cn flag
@4uk4 สิ่งที่ทำให้ฉันสับสนคือถ้าฟิลด์ไม่รองรับโหมดการดู ทำไมฉันจึงเพิ่มโหมดการดูในอินเทอร์เฟซผู้ดูแลระบบ สื่อไม่ใช่นิติบุคคลด้วยหรือ เป็นสิ่งที่ฉันสามารถเพิ่มฟิลด์ได้
4uk4 avatar
cn flag
ได้ คุณสามารถเพิ่มฟิลด์ลงในเอนทิตีสื่อ และฟิลด์ในตัวอย่างโค้ดก็เป็นฟิลด์ดังกล่าวเช่นกัน สิ่งที่ทำให้เกิดความสับสนในคำถามคือฟิลด์สื่อที่คุณหมายถึง ฟิลด์เช่นนี้คุณสามารถเข้าถึงได้ใน hook ของโค้ด ตัวอย่างหรือฟิลด์ในเอนทิตีอื่นที่ต้องการ hook อื่น
Matt avatar
cn flag
ใน wysiwyg ของฉัน ฉันกำลังฝังเอนทิตีสื่อ เมื่อฉันฝังเอนทิตีสื่อ ฉันต้องการเปลี่ยนโหมดมุมมองที่ใช้
Score:2
ธง cn

ใน wysiwyg ของฉัน ฉันกำลังฝังเอนทิตีสื่อ เมื่อฉันฝังเอนทิตีสื่อ ฉันต้องการเปลี่ยนโหมดมุมมองที่ใช้

เมื่อคุณฝังเอนทิตีสื่อใน WYSIWYG คุณสามารถเลือกโหมดมุมมองได้หากคุณต้องการเปลี่ยนในภายหลังโดยทางโปรแกรม คุณต้องเปลี่ยนใน <drupal-media> แท็กแอตทริบิวต์ โหมดดูข้อมูล. หากคุณไม่ได้ระบุโหมดการดู คุณลักษณะนี้จะหายไป และคุณต้องเพิ่มเข้าไป

หากคุณต้องการใช้ธีม preprocess hook ให้ใช้เทมเพลตที่มีฟิลด์ WYSIWYG ไม่ใช่ของเทมเพลตสื่อ ค้นหาฟิลด์ WYSIWYG ใน $ตัวแปร['เนื้อหา'] และเปลี่ยนซอร์ส HTML ที่คุณพบ '#ข้อความ'.

sonfd avatar
in flag
ในการตั้งค่ารูปแบบข้อความ เช่น/admin/config/content/formats/manage/full_html (Configuration > Content Authoring > Text formats and editors > [Format]) คุณควรเห็นแท็บใกล้ด้านล่างชื่อ "ฝังสื่อ" ซึ่งคุณสามารถกำหนดค่าชุดสื่อที่สามารถฝังได้ โหมดมุมมองใดที่อนุญาต และโหมดมุมมองใดเป็นค่าเริ่มต้น

โพสต์คำตอบ

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