Điểm:0

Tệp được quản lý trong cấu hình chủ đề không lưu

lá cờ zw

Trong cài đặt chủ đề của tôi dưới 'quản trị viên/giao diện/cài đặt/chủ đề', tôi đang cố gắng thêm trường hình ảnh.

Tôi đã thêm phần sau vào mytheme.theme

function mytheme_form_system_theme_settings_alter(&$form, Drupal\Core\Form\FormStateInterface $form_state) {
  $form['mytheme_settings']['footer_info']['footer_image'] = mảng(
    '#type' => 'tệp được quản lý',
    '#title' => 'hình ảnh chân trang',
    '#name' => 'footer_file',
    '#default_value' => theme_get_setting('footer_image', 'mytheme'),
    '#upload_location' => 'công khai://'
  );
}

Điều này tạo ra một trường tệp trong trang cài đặt chủ đề. Khi tôi tải lên, trường được lưu trong các tệp công khai của tôi

Tôi hiện đang cố gắng kết xuất tệp đó thành mẫu cành cây.

Tôi thêm phần sau vào mytheme.theme để hủy bỏ biến

function mytheme_pre process_page(&$variables) {
  $variables['footer_image'] = theme_get_setting('footer_image','mytheme');
}

Sau đó thêm {{ footer_image }} vào một mẫu, tuy nhiên tệp không được hiển thị.

Làm cách nào để gọi tệp mà tôi đã tải lên thành mẫu chủ đề tùy chỉnh của mình. Cảm ơn

Chỉnh sửa.

Sau khi tìm kiếm thêm, tôi phát hiện ra tệp được tải lên nhưng tệp đang bị xóa.

Sau khi tìm thấy cái này liên kết đề xuất rằng tôi đã gửi vị trí tệp mà tôi đã thực hiện.

leymannx avatar
lá cờ ne
Điều này có trả lời câu hỏi của bạn không? [Tệp được quản lý của tôi có bị xóa không?](https://drupal.stackexchange.com/questions/277946/will-my-managed-file-get-deleted)
leymannx avatar
lá cờ ne
Câu hỏi là khác nhau, nhưng câu trả lời là đúng.
Điểm:1
lá cờ us

hook_form_system_theme_settings_alter() cũng cần thêm trình xử lý gửi để xử lý tệp được quản lý. Trong lõi Drupal, hook duy nhất thực hiện điều đó được triển khai bởi một mô-đun thử nghiệm, nhưng mã giống như mã mà một mô-đun bình thường nên sử dụng. (Tôi không hiển thị tất cả các thành phần biểu mẫu được thêm từ hook; mã đến từ test_theme_settings_form_system_theme_settings_submit().)

function test_theme_settings_form_system_theme_settings_alter(&$form, FormStateInterface $form_state) {
  $form['custom_logo'] = [
    '#type' => 'tệp được quản lý',
    '#title' => t('Logo phụ.'),
    '#default_value' => theme_get_setting('custom_logo'),
    '#progress_indicator' => 'thanh',
    '#progress_message' => t('Vui lòng đợi...'),
    '#upload_location' => 'công khai://kiểm tra',
    '#upload_validators' => [
      'file_validate_extensions' => [
        'gif png jpg jpeg',
      ],
    ],
  ];

  $form['#submit'][] = 'test_theme_settings_form_system_theme_settings_submit';
}

function test_theme_settings_form_system_theme_settings_submit(&$form, FormStateInterface $form_state) {
  if ($file_id = $form_state->getValue(['custom_logo', '0'])) {
    $file = Tệp::load($file_id);
    $file->setPermanent();
    $file->save();
  }
}

Nếu không đặt tệp được quản lý là vĩnh viễn, nó sẽ sớm bị xóa.

Đă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.