Puncte:0

Fișierul gestionat din configurația temei nu se salvează

drapel zw

În setările temei mele, sub „admin/appearance/settings/mytheme”, încerc să adaug un câmp de imagine.

Am adăugat următoarele la mytheme.theme

function mytheme_form_system_theme_settings_alter(&$form, Drupal\Core\Form\FormStateInterface $form_state) {
  $form['mytheme_settings']['footer_info']['footer_image'] = array(
    '#type' => 'fișier_gestionat',
    '#title' => 'imagine de subsol',
    '#name' => 'fișier_subsol',
    '#default_value' => theme_get_setting('footer_image', 'mytheme'),
    '#upload_location' => 'public://'
  );
}

Aceasta creează un câmp de fișier în pagina de setări a temei. Când încarc câmpul este salvat în fișierele mele publice

Acum încerc să redau acel fișier într-un șablon de crenguță.

Adaug următoarele la mytheme.theme pentru a elimina variabila

funcția mytheme_preprocess_page(&$variabile) {
  $variables['footer_image'] = theme_get_setting('footer_image','mytheme');
}

Apoi adauga {{ footer_image }} la un șablon, totuși fișierul nu este redat.

Cum apelez fișierul pe care l-am încărcat în șablonul meu de temă personalizată. Mulțumiri

Editați | ×.

După ce am căutat mai multe, am descoperit că fișierul este încărcat, dar fișierul este șters.

După ce am găsit asta legătură se sugerează că am trimis locația fișierului pe care am făcut-o deja.

leymannx avatar
drapel ne
Răspunde asta la întrebarea ta? [Fișierul meu gestionat va fi șters?](https://drupal.stackexchange.com/questions/277946/will-my-managed-file-get-deleted)
leymannx avatar
drapel ne
Întrebarea este diferită, dar răspunsul este corect.
Puncte:1
drapel us

hook_form_system_theme_settings_alter() trebuie să adauge, de asemenea, un handler de trimitere, pentru a gestiona fișierul gestionat. În nucleul Drupal, singurul cârlig care face asta este implementat de un modul de testare, dar codul este același pe care ar trebui să îl folosească un modul normal. (Nu am afișat toate elementele de formular adăugate din cârlig; codul provine de la test_theme_settings_form_system_theme_settings_submit().)

funcția test_theme_settings_form_system_theme_settings_alter(&$form, FormStateInterface $form_state) {
  $form['custom_logo'] = [
    '#type' => 'fișier_gestionat',
    '#title' => t('Sigla secundară.'),
    '#default_value' => theme_get_setting('custom_logo'),
    '#progress_indicator' => 'bară',
    '#progress_message' => t('Vă rugăm să așteptați...'),
    '#upload_location' => 'public://test',
    '#upload_validators' => [
      'file_validate_extensions' => [
        „gif png jpg jpeg”,
      ],
    ],
  ];

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

funcția test_theme_settings_form_system_theme_settings_submit(&$form, FormStateInterface $form_state) {
  dacă ($file_id = $form_state->getValue(['custom_logo', '0'])) {
    $file = File::load($file_id);
    $fișier->setPermanent();
    $fișier->salvare();
  }
}

Fără a seta fișierul gestionat ca permanent, acesta ar fi șters în curând.

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.