ลองนึกภาพโมดูลที่เรียกว่า Configurable Picture คุณต้องการให้กำหนดเส้นทางไปยังรูปภาพผ่าน UI ของผู้ดูแลระบบ เส้นทางคือสตริง ดังนั้นสิ่งแรกที่ต้องทำคือกำหนดค่าสำหรับเส้นทาง ในกรณีนี้วัตถุการกำหนดค่าจะเป็น configuration_picture.settings
เส้นทาง_to_ภาพ
.
configuration_picture/config/schema/configurable_picture.schema.yml:
configuration_picture.settings:
ประเภท: config_object
ป้ายกำกับ: 'การตั้งค่ารูปภาพที่กำหนดค่าได้'
การทำแผนที่:
เส้นทาง_to_ภาพ:
ประเภท: สตริง
ป้ายกำกับ: 'เส้นทางสู่รูปภาพ'
ขั้นตอนต่อไปคือการสร้างฟอร์มการกำหนดค่าที่อนุญาตให้คุณแก้ไขรายการการกำหนดค่าที่กำหนดไว้ในสคีมาด้านบน นี่คือเอกสารเกี่ยวกับการสร้างฟอร์มการกำหนดค่า: https://www.drupal.org/docs/drupal-apis/configuration-api/working-with-configuration-forms
ด้วยขั้นตอนข้างต้น คุณจะสามารถบันทึกเส้นทางไปยังรูปภาพในหน้าการกำหนดค่าที่คุณสร้างขึ้น
มีสองขั้นตอนที่จำเป็นในการจัดเตรียมการตั้งค่านั้นให้กับไฟล์ JavaScript ประการแรกคือการเพิ่มการพึ่งพา การตั้งค่าหลัก / drupal
ไปยังไลบรารี JS ของคุณ
configuration_picture/configurable_picture.libraries.yml:
picture_form:
จส:
เส้นทาง/to/file.js: {}
การพึ่งพา:
- การตั้งค่าหลัก / drupal
จากนั้น คุณแนบไลบรารีและการตั้งค่าไปยังแบบฟอร์ม:
$form['#attached']['library'][] = 'configurable_picture/picture_form';
// คีย์การตั้งค่าคอนฟิกจะกลายเป็นเนมสเปซภายใน
// วัตถุ drupalSettings ในไฟล์ JS
$form['#attached']['drupalSettings']['configurablePicture'] = [
// กำหนดเส้นทางตามค่าที่บันทึกไว้ในการกำหนดค่า:
'pathToPicture' => \Drupal::config('configurable_picture')->get('path_to_picture'),
];
จากนั้น path/to/file.js สามารถเข้าถึงวัตถุการตั้งค่าดังนี้:
(ฟังก์ชัน ($, Drupal, drupalSettings) {
ฟังก์ชัน getPathToPicture() {
กลับ drupalSettings.configurablePicture.pathToPicture;
}
// หรือจากวัตถุการตั้งค่าใน Drupal.behaviors:
Drupal.behaviors.configurablePicture = {
แนบ: ฟังก์ชัน (บริบท การตั้งค่า) {
console.log(settings.configurablePicture.pathToPicture);
}
};
}(jQuery, Drupal, drupalSettings));