Score:6

ฉันจะลบรูปภาพเริ่มต้นออกจากฟิลด์รูปภาพได้อย่างไร

ธง ru

ฉันต้องการสร้างฟิลด์รูปภาพด้วยค่าเริ่มต้น ซึ่งต้องเป็นค่าว่างในเอนทิตีเนื้อหาเดียว ตรงกันข้ามกับฟิลด์ข้อความหรือฟิลด์อ้างอิงเอนทิตี ฉันไม่สามารถลบค่าเริ่มต้นนี้ในเอนทิตีเนื้อหาเดี่ยวได้

เช่น. ฉันสามารถสร้างฟิลด์ข้อความด้วยค่าเริ่มต้น "Lorem ipsum" ในการสร้างโหนด ฟิลด์จะถูกเติมล่วงหน้าด้วยข้อความนั้น แต่ฉันสามารถลบข้อความนั้นได้ และฟิลด์จะว่างเปล่า

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

ฉันจะทำให้ฟิลด์รูปภาพเป็น "โมฆะ" ได้อย่างไร

โปรดทราบว่าฉันไม่สามารถใช้การอ้างอิงเอนทิตีของสื่อได้ เนื่องจากฉันต้องรองรับ SVG และรูปภาพเหล่านั้นจะต้องไม่รั่วไหลไปยังกลุ่มสื่อส่วนกลางที่ใช้ซ้ำได้

Score:5
ธง cn

จริง ๆ แล้วรูปภาพเริ่มต้นไม่ได้ทำให้เกิดการบันทึกข้อมูลใด ๆ แต่จะมีผลกับตัวจัดรูปแบบรูปภาพ ดังนั้นหากไม่พบค่าใด ๆ สำหรับฟิลด์รูปภาพ รูปภาพนั้นจะแสดงรูปภาพเริ่มต้นซึ่งตั้งค่าไว้ในการตั้งค่าฟิลด์

คุณสามารถตรวจสอบใน DB หรือเพียงแค่สร้างเนื้อหาด้วยรูปภาพเริ่มต้น A.png จากนั้นไปที่การตั้งค่าฟิลด์และเปลี่ยนรูปภาพเริ่มต้นเป็น B.png และเมื่อคุณแสดงโหนดของคุณ คุณจะเห็นว่า B.png จะแสดงในเนื้อหา

ดังนั้น หากคุณไม่ต้องการเห็นภาพเริ่มต้นในบางกรณี คุณสามารถทำซ้ำตัวจัดรูปแบบภาพเริ่มต้นและทำทุกอย่างที่คุณต้องการ

และถ้าคุณต้องการบันทึกข้อมูลสำหรับฟิลด์รูปภาพด้วยค่าเริ่มต้น คุณสามารถทำได้โดยแก้ไขรูปแบบโหนดดังต่อไปนี้:

ฟังก์ชัน my_module_form_node_article_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
  foreach (array_keys($form['actions']) as $action) {
    ถ้า ($action != 'preview' && isset($form['actions'][$action]['#type']) && $form['actions'][$action]['#type'] == = 'ส่ง') {
      array_unshift($form['actions'][$action]['#submit'], 'my_module_test_form_submit');
    }
  }
}

ฟังก์ชัน my_module_test_form_submit (&$form, \Drupal\Core\Form\FormStateInterface $form_state) {
  $image = $form_state->getValue('field_image');
  ถ้า (ว่าง ($ ภาพ [0]['fids'])) {
    $form_state->setValue('field_image', $form['field_image']['widget'][0]['#default_image']['fid']);
  }
}
ru flag
ขอบคุณสำหรับคำแนะนำเกี่ยวกับตัวจัดรูปแบบฟิลด์ สิ่งนี้อธิบายปัญหามากมายที่ฉันเคยพบ ฟิลด์รูปภาพเป็นฟิลด์เดียวในคอร์ที่ไม่ได้จัดเก็บค่าเริ่มต้นในฐานข้อมูล แต่จะคำนวณค่าเหล่านั้นในฟอร์แมตฟิลด์ นี่คือสาเหตุที่อิมเมจไม่เป็นโมฆะและ API ที่เก็บข้อมูลไม่ส่งคืนค่าดีฟอลต์ที่ถูกต้อง ฉันได้ยื่น [รายงานข้อผิดพลาดเกี่ยวกับ d.o](https://www.drupal.org/project/drupal/issues/3250680) เกี่ยวกับเรื่องนี้
Alireza Tabatabaeian avatar
cn flag
ฉันสามารถจินตนาการได้ว่าการตระหนักว่าคุณไม่ได้บันทึกค่าใด ๆ ลงในฟิลด์เป็นเวลานานเพียงใดในขณะที่คุณคิดว่าคุณทำ

โพสต์คำตอบ

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