Puncte:0

Cum creez un câmp personalizat cu mai multe casete de selectare?

drapel ke

Urmând tutorialele și documentația, pot crea un câmp personalizat care acceptă o singură valoare șir. Totuși, ceea ce aș dori să realizez este o listă personalizată (de preferință casete de selectare tip) unde un utilizator poate selecta diferite opțiuni. Am încercat să caut în core/modules/options schema.yml și copierea setărilor de stocare îmi dă aceleași rezultate. Primesc eroarea Această valoare ar trebui să fie de tipul primitiv corect.

Acestea sunt ceea ce cred că sunt bucățile relevante de cod pe care le am în prezent:

in fieldtype/

  schema funcției statice publice (FieldStorageDefinitionInterface $field_definition) {
    întoarcere [
      // coloanele conține valorile pe care câmpul le va stoca
      'coloane' => [
        „valoare” => [
          'type' => 'text',
          'size' => 'normal',
          „nu nul” => FALSE,
          'serialize' => TRUE
        ],
      ],
      'indexuri' => [
        'valoare' => ['valoare'],
      ],
    ];
  }

În FieldWidget/

  funcția publică formElement(FieldItemListInterface $articole, $delta, matrice $element, matrice &$form, FormStateInterface $form_state) {
    $sglists = ['1' => 'a', '2' => 'b'];
    $element['valoare'] = $element + [
        '#type' => 'casete de selectare',
        '#options' => $sglists,
        '#empty_value' => '',
        '#default_value' => (isset($items[$delta]->value) && isset($sglists[$items[$delta]->value])) ? $articole[$delta]->valoare: NULL,
        '#description' => t('Selectați o listă Sendgrid'),
      ];

    returnează $element;
  }

în schema.yml

field.storage_settings.sendgridlists:
  etichetă: „Sendgrid Lists”
  tip: cartografiere
  cartografiere:
    listele_selectabile:
      tip: secvență
      etichetă: „Liste selectabile”
      secvenţă:
        tip: sfoară

Sunt destul de sigur că problema mea vine de la schema.yml, dar nu înțeleg cu adevărat cum să transform asta dintr-o singură valoare într-o listă cu mai multe valori. (similar cu core/module/opțiuni)

Orice ajutor este foarte apreciat, inclusiv orice link-uri către modulele de contrib existente care creează cu succes o personalizare casete de selectare tip de câmp la care pot face referire.

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.