Puncte:-2

Formular de entitate inline: modificați completarea automată

drapel nl

Trebuie să modific afișarea răspunsului de completare automată „Adăugați un nod existent”:

  • Adăugați tipul de conținut și mai multe informații din conținut (locație), afișați rezultatul pe două rânduri.
  • Inițiază completarea automată numai dacă sunt introduse cel puțin 6 caractere
  • modificați sortarea interogării (ORDER BY schimbat)

Care este cel mai bun mod de a ajunge la asta?

Puncte:1
drapel de

Modul în care am găsit să rezolv acest lucru (parte în cazul dvs.) este cu o vizualizare de tip Entity Reference, unde câmpurile pe care le-ați setat în vizualizare sunt ceea ce va afișa câmpul de completare automată și puteți utiliza filtre și sortări disponibile. Exemplu:

funcția MYMODULE_inline_entity_form_reference_form_alter(&$reference_form, FormStateInterface $form_state) {
  $form_id = $form_state->getFormObject()->getFormId();
  if ($form_id === 'node_article_edit_form' || $form_id === 'node_article_form') {
    $reference_form["entity_id"]["#selection_handler"] = 'vizualizări';
    $reference_form["entity_id"]["#selection_settings"] = [
      „vizualizare” => [
        "view_name" => "my_view_name",
        "display_name" => "my_view_display_name",
      ],
    ];
  }
}

Sper să ajute pe altcineva

Puncte:0
drapel nl

Mulțumesc @chalo

acest lucru a ajutat să aplic punctul final personalizat de completare automată (în loc să folosesc vizualizări) Aici exemplul meu de lucru bazat pe răspunsul @chalos.

$reference_form['entity_id'] = array_merge(
  $reference_form['entity_id'], [
    '#type' => 'câmp text',
    '#autocomplete_route_name' => 'cnfpt_internet.autocomplete',
    '#autocomplete_route_parameters' => [
      'field_name' => 'field_video',
      'target_type' => $reference_form['entity_id']['#target_type'],
      'bundle_name' => 'inline_entity_form',
      'selection_handler' => '',
      'selection_settings_key' => '',
      'entity_id' => 0,
    ],
  ]

Problema mea a fost că nu am folosit cârligul potrivit pentru a intercepta completarea automată a entității native și pentru a o înlocui cu cea personalizată.

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.