Puncte:3

QuickEditIntegration nu poate procesa componente pentru Quick Edit

drapel cn

Am un tip de conținut care este afișat cu Layout Builder.Când îl văd în modul implicit, opțiunea Editare rapidă nu apare în meniul contextual. Acest lucru se datorează faptului că niciunul dintre câmpuri nu are data-quickedit-field-id atribut.

Am petrecut câteva zile urmărind asta. Se pare că problema apare în această funcție în core/modules/layout_builder/src/QuickEditIntegration.php.

  suport pentru funcții privateQuickEditOnComponent(array $component, FieldableEntityInterface $entity) {
    if (isset($component['conținut']['#field_name'], $component['#base_plugin_id']) && $component['#base_plugin_id'] === 'field_block' && $entity->hasField($ component['conținut']['#field_name'])) {
      return $entity->getFieldDefinition($component['content']['#field_name'])->isDisplayConfigurable('view');
    }
    returnează FALSE;
  }

Când entityViewAlter apeluri suportăQuickEditOnComponent, matricea $component conține o matrice imbricată neașteptată...

instantaneu al structurii JSON

și toate lucrurile care ar trebui să fie înăuntru conţinut este în schimb imbricat într-un subbary [0]. Ca rezultat, funcția revine fals și niciunul dintre câmpuri nu este adăugat $plugin_ids_to_update și astfel nu sunt analizate în interiorul acestei bucle în entityViewAlter:

  foreach ($plugin_ids_to_update ca $delta => $regiuni) {
    foreach ($regiuni ca $regiune => $uuids) {
      foreach ($uuids ca $uuid => $component) {
        $build['_layout_builder'][$delta][$region][$uuid]['content']['#view_mode'] = static::getViewModeId($entity, $display, $delta, $uuid, $sections_hash );
      }
    }
  }

... care este locul în care este atribuit ID-ul modului de vizualizare care permite acest lucru data-quickedit-field-id atribut care urmează să fie adăugat de Editare rapidă mai târziu.

Am "reparat" asta prin piratare QuickEditIntegration.php în două locuri, prăbușind subbarajul [0] în principal $component matrice. Știu că acesta nu este modul corect de a face asta. Ce ar putea face ca aceste componente ale Layout Builder să fie populate într-un subbary în loc de locul în care QuickEditIntegration se așteaptă să le găsească?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.