Score:3

QuickEditIntegration ไม่สามารถประมวลผลส่วนประกอบสำหรับ Quick Edit

ธง cn

ฉันมีประเภทเนื้อหาที่แสดงด้วย Layout Builderเมื่อฉันดูในโหมดเริ่มต้น ตัวเลือกแก้ไขด่วนจะไม่ปรากฏในเมนูตามบริบท เนื่องจากไม่มีฟิลด์ใดที่มี data-quickedit-field-id คุณลักษณะ.

ฉันใช้เวลาสองสามวันในการไล่ตามสิ่งนี้ เห็นได้ชัดว่าปัญหาเกิดขึ้นในฟังก์ชันนี้ใน core/modules/layout_builder/src/QuickEditIntegration.php.

  ฟังก์ชันส่วนตัว supportQuickEditOnComponent (อาร์เรย์ $component, FieldableEntityInterface $entity) {
    ถ้า (isset($component['content']['#field_name'], $component['#base_plugin_id']) && $component['#base_plugin_id'] === 'field_block' && $entity->hasField($ องค์ประกอบ ['เนื้อหา'] ['#field_name'])) {
      ส่งคืน $entity->getFieldDefinition($component['content']['#field_name'])->isDisplayConfigurable('view');
    }
    กลับ FALSE;
  }

เมื่อไร เอนทิตี ViewAlter โทร สนับสนุน QuickEditOnComponentอาร์เรย์ $component มีอาร์เรย์ที่ซ้อนกันโดยไม่คาดคิด...

ภาพรวมของโครงสร้าง JSON

และสิ่งของทั้งหมดที่ควรจะอยู่ข้างใน เนื้อหา ถูกซ้อนอยู่ใน subarray แทน [0]. ด้วยเหตุนี้ฟังก์ชันจึงส่งกลับ เท็จ และไม่มีฟิลด์ใดถูกเพิ่มเข้าไป $plugin_ids_to_update และดังนั้นจึงไม่ถูกแยกวิเคราะห์ภายในลูปนี้ เอนทิตี ViewAlter:

  foreach ($plugin_ids_to_update เป็น $delta => $regions) {
    foreach ($regions เป็น $region => $uuids) {
      foreach ($uuids เป็น $uuid => $component) {
        $build['_layout_builder'][$delta][$region][$uuid]['content']['#view_mode'] = static::getViewModeId($entity, $display, $delta, $uuid, $sections_hash );
      }
    }
  }

... ซึ่งเป็นตำแหน่งที่มีการกำหนดรหัสโหมดการดูที่เปิดใช้งาน data-quickedit-field-id แอตทริบิวต์ที่จะเพิ่มโดย Quick Edit ในภายหลัง

ฉันได้ "แก้ไข" สิ่งนี้ด้วยการแฮ็ค QuickEditIntegration.php ในสองแห่งยุบ subarray [0] เป็นหลัก $ส่วนประกอบ อาร์เรย์ ฉันรู้ว่านี่ไม่ใช่วิธีที่ถูกต้อง อะไรเป็นสาเหตุที่ทำให้คอมโพเนนต์ Layout Builder เหล่านี้ถูกบรรจุลงใน subarray แทนที่จะเป็นตำแหน่งที่ QuickEditIntegration คาดว่าจะพบ

โพสต์คำตอบ

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