Mới sử dụng Trình tạo bố cục - chúng tôi đã tạo plugin khối tùy chỉnh hiển thị biểu mẫu tùy chỉnh. Khi tôi truy cập một trang có Trình tạo bố cục và thử thêm khối đó... nó không có trong danh sách các khối.
/**
* Cung cấp một khối biểu mẫu.
*
* @Chặn(
* id = "my_block",
* admin_label = @Translation("Khối của tôi có biểu mẫu"),
* danh mục = @Translation("Tùy chỉnh")
* )
*/
lớp MyBlock mở rộng BlockBase thực hiện ContainerFactoryPluginInterface {
/**
* Trình tạo biểu mẫu.
*
* @var \Drupal\Core\Form\FormBuilderInterface
*/
được bảo vệ $formBuilder;
/**
* Xây dựng phiên bản MyBlock mới.
*
* @param mảng $configuration
* Cấu hình plugin, tức là một mảng có giá trị cấu hình được khóa
* theo tên tùy chọn cấu hình. Khóa đặc biệt 'bối cảnh' có thể được sử dụng để
* khởi tạo các ngữ cảnh đã xác định bằng cách đặt nó thành một mảng ngữ cảnh
* giá trị được khóa bởi tên ngữ cảnh.
* @param chuỗi $plugin_id
* Plugin_id cho phiên bản plugin.
* @param hỗn hợp $plugin_definition
* Định nghĩa triển khai plugin.
* @param \Drupal\Core\Form\FormBuilderInterface $form_builder
* Trình tạo biểu mẫu.
*/
hàm công khai __construct(mảng $configuration, $plugin_id, $plugin_definition, FormBuilderInterface $form_builder) {
cha mẹ::__construct($configuration, $plugin_id, $plugin_definition);
$this->formBuilder = $form_builder;
}
/**
* {@inheritdoc}
*/
tạo hàm tĩnh công khai (ContainerInterface $container, mảng $configuration, $plugin_id, $plugin_definition) {
trả về tĩnh mới (
cấu hình $,
$plugin_id,
$plugin_definition,
$container->get('form_builder')
);
}
/**
* {@inheritdoc}
*/
xây dựng chức năng công cộng () {
$build['access_form'] = $this->formBuilder->getForm('Drupal\mymodule\Form\MyForm');
trả lại bản dựng $;
}
}
Có điều gì tôi cần thêm vào chú thích hoặc lớp để biến nó thành một tùy chọn cho Trình tạo bố cục không? Nó hoạt động tốt như một khối Drupal bình thường.
chỉnh sửa: Tôi nhận thấy trong một mô-đun tùy chỉnh ngẫu nhiên, họ phải thay đổi Trình tạo bố cục để có được chức năng này. Đúng không??
https://git.drupalcode.org/project/layout_builder_block/-/blob/1.x/src/EventSubscriber/LayoutBuilderBlockAddControllerSubscriber.php