Score:1

วิธีเพิ่มฟิลด์ใหม่ในกล่องโต้ตอบ 'แก้ไขสื่อ' ในการฝังสื่อ

ธง cn

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

ฉันสามารถทำให้ฟิลด์ปรากฏขึ้นโดยใช้

ฟังก์ชัน mymodule_form_alter (อาร์เรย์ &$form, FormStateInterface $form_state, สตริง $form_id) {
ถ้า($form_id=='editor_media_dialog'){
  $แบบฟอร์ม['ขนาด'] = [
    '#title' => t('ขนาด'),
    '#type' => 'เลือก',
    '#ตัวเลือก' => [
      '' => t('ค่าเริ่มต้น'),
      '-small' => t('เล็ก'),
      '-ปานกลาง' => t('ปานกลาง'),
      '-ใหญ่' => t('ใหญ่'),
    ]
  ];
 }
}

แต่ดูเหมือนว่าฉันไม่สามารถทำให้ค่านั้นบันทึกได้อยู่ดี เมื่อบันทึกและเปิดกล่องโต้ตอบใหม่ จะไม่มีการอ้างอิงถึงค่าใหม่ใน $form_state

วิธีที่เหมาะสมในการเพิ่มฟิลด์ลงในกล่องโต้ตอบ 'แก้ไขสื่อ' ของเอนทิตีสื่อแบบฝังตัวใน WYSIWYG คืออะไร

Score:1
ธง cn

กล่องโต้ตอบเหล่านี้ทำงานดังนี้:

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

สิ่งที่คุณต้องทำคือ:

  1. รับองค์ประกอบฟอร์มของคุณลงใน คุณลักษณะ อาร์เรย์ ดังนั้นมันจะถูกนำไปใช้กับมาร์กอัปโดยอัตโนมัติ คุณสามารถทำได้โดยการตั้งค่า #ผู้ปกครอง บนองค์ประกอบ
  2. ตั้ง #default_value ถึงคนที่ส่งมาจากบรรณาธิการ ค่าเหล่านั้นมีให้จากการป้อนข้อมูลของผู้ใช้ แทนที่จะเป็นค่าสถานะของฟอร์ม

รหัสสุดท้ายของคุณอาจมีลักษณะดังนี้:

$size = $form_state->getUserInput()['editor_object']['attributes']['size'] ?? '';

$แบบฟอร์ม['ขนาด'] = [
  '#title' => t('ขนาด'),
  '#type' => 'เลือก',
  '#ตัวเลือก' => [
    '' => t('ค่าเริ่มต้น'),
    '-small' => t('เล็ก'),
    '-ปานกลาง' => t('ปานกลาง'),
    '-ใหญ่' => t('ใหญ่'),
  ]
  '#parents' => ['attributes', 'size'],
  '#default_value' => ขนาด $,
];
Matt avatar
cn flag
ขอบคุณที่ใช้งานได้ดี! มีประโยชน์เช่นเคย Clive

โพสต์คำตอบ

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