Imaginează-ți un modul numit Imagine configurabilă. Doriți ca calea către imagine să fie configurabilă prin interfața de utilizare admin. O cale este un șir, așa că primul lucru de făcut este să definiți configurația pentru cale. În acest caz, obiectul de configurare va fi configurabil_picture.settings
calea_spre_imagine
.
configurable_picture/config/schema/configurable_picture.schema.yml:
configurable_picture.settings:
tip: config_object
etichetă: „Setări configurabile pentru imagine”
cartografiere:
drum_to_picture:
tip: sfoară
etichetă: „Cale către imagine”
Următorul pas este să creați un formular de configurare care vă permite să editați elementul de configurare definit în schema de mai sus. Iată documentația despre crearea formularelor de configurare: https://www.drupal.org/docs/drupal-apis/configuration-api/working-with-configuration-forms
Cu pașii de mai sus, veți putea salva calea către imagine pe pagina de configurare pe care ați creat-o.
Există doi pași necesari pentru a furniza acea setare de configurare fișierului JavaScript. Primul este să adăugați o dependență la core/drupalSettings
în biblioteca dvs. JS.
configurable_picture/configurable_picture.libraries.yml:
formă_imagine:
js:
cale/către/fișier.js: {}
dependențe:
- core/drupalSettings
Apoi, atașați biblioteca și setările la formular:
$form['#attached']['library'][] = 'configurable_picture/picture_form';
// Cheia configurableSettings va deveni spațiul de nume din interiorul
// obiect drupalSettings în fișierul JS.
$form['#attached']['drupalSettings']['configurablePicture'] = [
// Setați calea pe baza valorii salvate în configurare:
'pathToPicture' => \Drupal::config('configurable_picture')->get('path_to_picture'),
];
Apoi, path/to/file.js poate accesa obiectul setări astfel:
(funcție ($, Drupal, drupalSettings) {
funcția getPathToPicture() {
returnează drupalSettings.configurablePicture.pathToPicture;
}
// Sau, din obiectul setări din Drupal.behaviors:
Drupal.behaviors.configurablePicture = {
atașați: funcție (context, setări) {
console.log(settings.configurablePicture.pathToPicture);
}
};
}(jQuery, Drupal, drupalSettings));