Điểm:3

QuickEditIntegration không thể xử lý các thành phần cho Chỉnh sửa nhanh

lá cờ cn

Tôi có một loại nội dung được hiển thị với Trình tạo bố cục.Khi tôi xem nó ở chế độ mặc định, tùy chọn Chỉnh sửa nhanh không xuất hiện trong menu ngữ cảnh. Điều này là do không có trường nào có dữ liệu-quickit-trường-id thuộc tính.

Tôi đã dành một vài ngày để theo đuổi điều này xuống. Rõ ràng vấn đề xuất hiện trong chức năng này trong lõi/mô-đun/layout_builder/src/QuickEditIntegration.php.

  hỗ trợ chức năng riêngQuickEditOnComponent(mảng $component, FieldableEntityInterface $entity) {
    if (isset($component['content']['#field_name'], $component['#base_plugin_id']) && $component['#base_plugin_id'] === 'field_block' && $entity->hasField($ thành phần['nội dung']['#tên_trường'])) {
      return $entity->getFieldDefinition($component['content']['#field_name'])->isDisplayConfigurable('view');
    }
    trả về SAI;
  }

Khi nào thực thểViewAlter cuộc gọi hỗ trợQuickEditOnComponent, mảng $component chứa một mảng lồng nhau không mong muốn...

ảnh chụp nhanh cấu trúc JSON

và tất cả những thứ được cho là bên trong Nội dung thay vào đó được lồng trong một mảng con [0]. Kết quả là, hàm trả về sai và không có trường nào được thêm vào $plugin_ids_to_update và do đó chúng không được phân tích cú pháp bên trong vòng lặp này trong thực thểViewAlter:

  foreach ($plugin_ids_to_update as $delta => $regions) {
    foreach ($khu vực dưới dạng $khu vực => $uuids) {
      foreach ($uuids là $uuid => $component) {
        $build['_layout_builder'][$delta][$region][$uuid]['content']['#view_mode'] = static::getViewModeId($entity, $display, $delta, $uuid, $sections_hash );
      }
    }
  }

... đó là nơi ID chế độ xem được chỉ định cho phép điều đó dữ liệu-quickit-trường-id thuộc tính sẽ được Quick Edit thêm vào sau.

Tôi đã "sửa lỗi" này bằng cách hack QuickEditIntegration.php ở hai nơi, thu gọn mảng con [0] vào chính thành phần $ mảng. Tôi biết đây không phải là cách đúng đắn để làm điều đó. Điều gì có thể khiến các thành phần Trình tạo Bố cục này được điền vào một mảng con thay vì nơi mà QuickEditIntegration mong muốn tìm thấy chúng?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.