Tôi đang làm việc với một mô-đun tùy chỉnh và tôi muốn cấu hình mô-đun đó thông qua menu quản trị. Tôi gặp khó khăn khi nhận biểu mẫu xuất hiện trong trang quản trị.
Truy cập admin/config/MYMODULE sẽ hiển thị biểu mẫu, nó chỉ không hiển thị trên trang/admin/config.
Đây là cấu trúc tệp của tôi cho đến nay (không bao gồm các tệp không liên quan):
*Tệp biểu mẫu chỉ là một biểu mẫu ví dụ để cố gắng làm cho nó xuất hiện trên trang quản trị.
MYMODULE.routing.yml
MYMODULE.settings:
đường dẫn: '/admin/config/system/MYMODULE'
mặc định:
_form: '\Drupal\MYMODULE\Form\myModuleSettingsForm'
_title: 'Cài đặt myModule'
yêu cầu:
_permission: 'quản lý cấu hình trang web'
MYMODULE.schema.yml
MYMODULE.settings:
gõ: config_object
nhãn: 'Cài đặt myModule'
lập bản đồ:
đường dẫn đến âm thanh:
loại: chuỗi
nhãn: 'Đường dẫn đến âm thanh'
MYMODULE.links.menu.yml
MYMODULE.settings:
tiêu đề: 'Cài đặt myModule'
mô tả: 'Thay đổi cài đặt myModule'
route_name: MYMODULE.settings
cha mẹ: system.admin_config_system
MYMODULE.settings.yml
con đường:
path_to_sound: '/modules/custom/MYMODULE/myModule.mp3'
myModuleSettingsForm.php
<?php
không gian tên Drupal\MYMODULE\Form;
sử dụng Drupal\Core\Form\ConfigFormBase;
sử dụng Drupal\Core\Form\FormStateInterface;
/**
* Định cấu hình cài đặt ví dụ cho trang web này.
*/
lớp myModuleSettingsForm mở rộng ConfigFormBase {
/**
* Cài đặt cấu hình.
*
* chuỗi @var
*/
const SETTINGS = 'MYMODULE.settings';
/**
* {@inheritdoc}
*/
hàm công khai getFormId() {
trả về 'MYMODULE_admin_settings';
}
/**
* {@inheritdoc}
*/
chức năng được bảo vệ getEditableConfigNames() {
trở lại [
tĩnh :: CÀI ĐẶT,
];
}
/**
* {@inheritdoc}
*/
chức năng công khai buildForm(mảng $form, FormStateInterface $form_state) {
$config = $this->config(static::SETTINGS);
$form['example_thing'] = [
'#type' => 'trường văn bản',
'#title' => $this->t('Mọi thứ'),
'#default_value' => $config->get('example_thing'),
];
trả về cha mẹ::buildForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
hàm công khai submitForm(mảng &$form, FormStateInterface $form_state) {
// Truy xuất cấu hình.
$this->configFactory->getEditable(static::SETTINGS)
// Đặt cài đặt cấu hình đã gửi.
->set('example_thing', $form_state->getValue('example_thing'))
// Bạn có thể đặt nhiều cấu hình cùng một lúc bằng cách thực hiện
// nhiều lệnh gọi set().
-> lưu();
cha mẹ::submitForm($form, $form_state);
}
}
Tôi hiểu rằng bây giờ tôi có thể thấy biểu mẫu này trên trang cấu hình, nhưng tôi không thấy, bất kể việc xóa bộ nhớ cache, v.v.Tôi đã làm theo tài liệu để làm điều này và thậm chí tham khảo chéo các mô-đun phổ biến khác, vì vậy tôi thực sự không chắc mình đang làm gì sai.