Puncte:-1

Cum se modifică lista de țări disponibile furnizate comerț/băieți

drapel om

Trebuie să modific lista de țări care sunt afișate într-un formular web. Acesta folosește un widget care este alimentat de modulul Adresă, care este alimentat de bibliotecă commerceguys/adresare.

Conform documentelor pentru Drupal/Commerce, acest lucru se poate face cu un abonat la eveniment.

Puteți modifica lista țărilor disponibile pentru o listă selectată prin abonarea la AddressEvents::AVAILABLE_COUNTRIES

De fapt, în modulul Adresă, există cod exemplu. Nu ar trebui să fie atât de greu, nu?

Întrebarea este; cand se declanseaza evenimentul? Mă aflu pe o pagină care a generat un meniu derulant cu o listă de țări produsă în mod clar de modulul Adresă. Dar, evenimentul nu se declanșează niciodată (vezi rezultatul de mai jos din webprofiler)

introduceți descrierea imaginii aici

Am copiat aproape codul din modulul folosit ca test. Dar nu am avut noroc ca evenimentul să se întâmple. Asa de;

  1. Oricine are experiență și, sperăm, succes în personalizarea listei de țări disponibile
  2. Orice sugestii pentru a determina când ar trebui să se declanșeze un eveniment

Notă secundară la numărul 2. Privind la trăsătură, pot vedea unde „ar trebui să se declanșeze”, dar ce pagină/punct final ar declanșa asta?

drapel cn
Vă rugăm să urmați ghidul general de o întrebare per post. În general, dacă un modul include cod exemplu, atunci vă puteți aștepta să funcționeze; dacă nu funcționează, ar trebui să arătați codul atunci când postați aici și să descrieți ce ați schimbat din eșantion. Bănuiala mea inițială ar fi că ați denumit fișierul greșit, deci nu este preluat, dar fără cod de postare, este imposibil de spus.
drapel cn
Nicio ofensă intenționată. Mi-am făcut comentariul pe baza faptului că ți-ai încheiat postarea cu o listă numerotată de puncte care ar putea invita la o discuție deschisă -- de exemplu, întrebând „Cum pot determina când ar trebui să se declanșeze un eveniment?” este o întrebare diferită de „Cum se modifică țările disponibile pe formularul web?”
Puncte:0
drapel om

După ce am analizat acest lucru cu menținătorii de module, răspunsul la întrebare este că nu poate fi rezolvat în abordarea pe care am luat-o

Webform este special, folosește elementul adresa direct astfel încât evenimentul (care este specific tipului de câmp) nu este declanșat. În acest caz vei face trebuie să suprascrieți depozitul de țară

Puncte:0
drapel om

Iată răspunsul. Decoratori de servicii

Ceea ce trebuie să se întâmple este să măriți/modificați comportamentul unei metode din serviciul address.country_repository. Specific \Drupal::service('address.country_repository')->getList();

Decoratori de servicii de la Symfony face exact asta - permite clasei de bază să persiste, dar oferă posibilitatea de a adăuga sau modifica comportamentul metodelor din cadrul clasei

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.