我想实现以下目标(d10):
在表单中,将显示自定义drupal插件的列表。每个插件都有一个设置表单数组,这取决于它的类型,并将作为插件列表的一部分合并到表单中。
用户可以通过点击一个支持ajax的add按钮来添加插件,该按钮显示了一个对话框,其中包含每个插件的按钮。这类似于段落设置为显示每个段落类型的add按钮时所做的工作--但是在弹出/对话框中。
单击“添加”按钮时,我希望通过ajax将相应的插件添加到表单中的列表中,包括其设置表单--无需重新加载页面。

我面临的问题是: Drupal使用jqueryui的对话框,它将其内容呈现在表单标记之外,这会阻止对话框中的任何提交按钮工作,因为没有表单包装,也没有form_id、build_id、……隐藏的田野。
我检查了drupal核心在块配置和视图表单中所做的工作。似乎核心开发人员试图找到一些方法来实现类似的功能,但是使用了页面重新加载(比如添加块时)或使所有更改都是半持久化的(视图配置),这需要在某种草稿状态中存储所有更改。
处理这一问题的两种方法似乎都是一种解决办法,并创建了它们自己的一组问题,即ux问题,以及技术上的问题。
我是不是错过了一些聪明而简单的方法来实现这样的东西?
发布于 2023-05-12 13:34:10
经过进一步研究,我发现段落模块允许在弹出/对话框中显示add段落类型按钮,然后为新添加的段落添加表单,这正是我想要做的。
他们所做的是:
有关他们是如何做到这一点的,请参见段落/js/分段.modal.js和paragraphs/src/Plugin/Field/Widget/FieldWidget/InlineParagraphsWidget.php。
也许这在某种程度上可以帮助某人节省时间:)
https://drupal.stackexchange.com/questions/315721
复制相似问题