首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体复选框字段的webform元素标签模板主题化

实体复选框字段的webform元素标签模板主题化
EN

Drupal用户
提问于 2023-05-12 07:36:51
回答 2查看 42关注 0票数 1

在webform中,我使用实体复选框组件,它允许我显示我需要使用视图的选项,具体取决于链接到哪个节点。但是,在设置这些字段的输出主题方面,我缺乏灵活性。在调试模式中,我看到所需的标记被插入到模板"form_element_label.html.twig“中。How是否为具有特定名称的webform重写此模板,并且仅覆盖特定字段?

我向ChatGPT问了这个问题,但她的解决方案行不通。然而,一般的逻辑是正确的。在主题的.theme文件中创建一个新函数:

代码语言:javascript
复制
function MYTHEME_theme_suggestions_webform_element_label_alter(array &$suggestions, array $variables) {
  $element = $variables['element'];
  if (isset($element['#webform_id']) && isset($element['#key'])) {
    $suggestions[] = 'webform_element_label__' . $element['#webform_id'] . '__' . $element['#key'];
  }
}

在主题模板文件夹中创建一个新的模板文件: webform-element-label--WEBFORMID--ELEMENTKEY.html.twig

Drupal没有看到这个模式。我在哪里犯错误?

我看到的结果如下:对于我需要的表单,我重新定义了我需要的字段的标签模板,在其中插入我需要的HTML标记。重写视图模板不允许我这样做,但我能够显示我需要的材料类型的查看模式。现在我只需要把它隐藏在手风琴元素中,这样我就可以在点击链接时获得信息。

EN

回答 2

Drupal用户

发布于 2023-05-12 14:22:20

您应该在您的twig.config中设置services.yml : debug: true,这将允许您查看当前的建议。

您应该看到您的建议,但是使用Drupal,即使您这样做了,并且您以'-‘’__传递了这个建议,它会告诉您它在那里,但是它实际上不会选择模板。

因此,请确保将-转换为_。

代码语言:javascript
复制
$suggestion = 'webform_element_label__' . $element['#webform_id'] . '__' . $element['#key'];
$suggestion = str_replace('-', '_', $suggestion);
$suggestions[] = $suggestion;

在twig调试的情况下,它实际上会告诉您您需要的主题挂钩。

例如

函数mytheme_theme_suggestions_breadcrumb_alter(array &$建议,数组$variables) {

票数 1
EN

Drupal用户

发布于 2023-05-29 13:27:08

我的错误是,我不专心地研究了这种形式成分的工作特点。在那里插入标记是不可能的,因为它是经过过滤的。我的方法与输出的挑逗材料是正确的。您只需考虑到链接和其他html标记将分别删除,您可以忘记弹出窗口。

票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/315718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档