Điểm:2

Không thể chọn trước múi giờ trong hook_form_alter

lá cờ ba

Tôi đang viết hồ sơ cài đặt/bản phân phối tùy chỉnh và tôi muốn điền trước một số trường trong biểu mẫu 'Cấu hình trang web' (/core/install.php). Tôi đã quản lý để điền trước/chọn trước các trường khác như (Tên trang web, địa chỉ email trang webquốc gia mặc định) nhưng không thể chọn trước Múi giờ mặc định cánh đồng. Đây là mã tôi đang sử dụng:

function mydistribution_form_install_configure_form_alter(&$form, FormStateInterface $form_state) {
  $form['site_information']['site_name']['#default_value'] = 'Tên trang web giả';
  $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'] = 'Châu Âu/Berlin';
}

Như bạn có thể thấy trong ảnh chụp màn hình, tôi quản lý để thay đổi quốc gia mặc định thành công, nhưng không phải là Múi giờ mặc định.

Tuy nhiên, điều "kỳ lạ" là khi tôi kiểm tra mã, tôi có thể thấy rằng múi giờ chính xác đã được đã chọn nhưng biểu mẫu hiển thị London.

nhập mô tả hình ảnh ở đây

Tôi sống ở Vương quốc Anh nên tôi đoán đây là cách London được chọn.

Có ai biết làm thế nào để có được điều này cố định? Cảm ơn bạn trước!

Điểm:4
lá cờ cn

Drupal thêm một số JS để phát hiện múi giờ (thông qua core/misc/timezone.js). Điều này can thiệp vào mã của bạn, nhưng có thể được gỡ bỏ dễ dàng:

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

Điều này loại bỏ phát hiện múi giờ lớp học từ <select>, ngăn JS xử lý nó.

consuela avatar
lá cờ ba
Cảm ơn Clive rất nhiều! Điều đó đã giải quyết vấn đề của tôi.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.