Puncte:2

Nu se poate preselecta fusul orar în hook_form_alter

drapel ba

Scriu un profil de instalare/distribuție personalizată și vreau să pre-populez unele câmpuri în formularul „Configurare site” (/core/install.php). Am reușit să precomplez/preselectez alte câmpuri precum (Numele site-ului, Adresa de e-mail a site-ului și Țara implicită) dar nu poate preselecta Fus orar implicit camp. Acesta este codul pe care îl folosesc:

funcția mydistribution_form_install_configure_form_alter(&$form, FormStateInterface $form_state) {
  $form['site_information']['site_name']['#default_value'] = 'Numele site-ului fals';
  $form['site_information']['site_mail']['#default_value'] = '[email protected]';
  
  $form['regional_settings']['site_default_country']['#default_value'] = 'DE';
  $form['regional_settings']['date_default_timezone']['#default_value'] = 'Europa/Berlin';
}

După cum puteți vedea în captură de ecran, reușesc să schimb Țara implicită cu succes, dar nu Fus orar implicit.

Lucrul „ciudat” este însă că, atunci când inspectez codul, pot vedea că fusul orar corect a fost selectat dar se afișează formularul Londra.

introduceți descrierea imaginii aici

Am sediul în Marea Britanie, așa că cred că așa este selectată Londra.

Știe cineva cum să rezolve asta? Multumesc anticipat!

Puncte:4
drapel cn

Drupal adaugă niște JS pentru a detecta fusul orar (prin core/misc/timezone.js). Acest lucru interferează cu codul dvs., dar poate fi eliminat cu ușurință:

unset($form['regional_settings']['date_default_timezone']['#attributes']);

Aceasta elimină fus orar-detectare clasa de la <select>, oprind procesarea acestuia de către JS.

consuela avatar
drapel ba
Multumesc mult Clive! Asta mi-a rezolvat problema.

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.