如何使用 .ftl 语言在 magnolia 6.2 中访问可切换字段类型对话框的值

Posted

技术标签:

【中文标题】如何使用 .ftl 语言在 magnolia 6.2 中访问可切换字段类型对话框的值【英文标题】:How to access value of switchable fieldType dialog in magnolia 6.2 using .ftl languange 【发布时间】:2021-03-12 23:30:03 【问题描述】:

仅供参考,我是木兰的新手, 我正在尝试在对话框中使用可切换类型字段,这是我的 YAML 外观:

form:
  label: Confirmation Pop Up
  tabs:
    - name: Menu
      label: Menu
      fields:        
        - name: linkUrl
          fieldType: switchable
          label: Link Button Reject
          class: info.magnolia.ui.field.ConfiguredSwitchableFieldDefinition
          transformerClass: info.magnolia.ui.form.field.transformer.composite.SwitchableTransformer
          options:
            - name: intLink
              label: Internal URL
              selected: true
              value: intLink
            - name: extLink
              label: External URL
              value: extLink

          fields:
            - name: intLink
              class: info.magnolia.ui.form.field.definition.LinkFieldDefinition
              targetWorkspace: website
              fieldType: link
              appName: pages
              label: Link Internal
              description: Choose a page to link .
              identifierToPathConverter:
                class: info.magnolia.dam.app.ui.field.definition.DamUploadFieldDefinition

            - name: extLink 
              label: Link External 
              class: info.magnolia.ui.form.field.definition.TextFieldDefinition

               
actions:
  commit:
    class: info.magnolia.ui.admincentral.dialog.action.SaveDialogActionDefinition
  cancel:
    class: info.magnolia.ui.admincentral.dialog.action.CancelDialogActionDefinition

我可以得到这个值

options:
  - name: intLink
    label: Internal URL
    selected: true
    value: intLink
  - name: extLink
    label: External URL
    value: extLink

通过调用 $content.linkUrl 将显示“intLink”或“extLink”,

那么,我如何获得这个价值:

fields:
  - name: intLink
    class: info.magnolia.ui.form.field.definition.LinkFieldDefinition
    targetWorkspace: website
    fieldType: link
    appName: pages
    label: Link Internal
    description: Choose a page to link .
    identifierToPathConverter:
       class: info.magnolia.dam.app.ui.field.definition.DamUploadFieldDefinition

  - name: extLink 
    label: Link External 
    class: info.magnolia.ui.form.field.definition.TextFieldDefinition

有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

如果您在 JCR 中查看该节点,您可能会看到名为 linkUrlintLinklinkUrlextLink 的项目,这是因为值没有得到转换,默认情况下,可切换字段将连接名称。您应该可以通过$content.linkUrlintLink$content.linkUrlextLink 访问它们。您还可以使用DelegatingCompositeFieldTransformer 类去除字段名称的前置名称。

【讨论】:

以上是关于如何使用 .ftl 语言在 magnolia 6.2 中访问可切换字段类型对话框的值的主要内容,如果未能解决你的问题,请参考以下文章

在 Magnolia 4.5.3 中使用 cusom ftl 文件继承阶段

如何使用来自另一个 Maven 模块的宏?

如何在 Magnolia 5.7 中检测设备并渲染适当的图像变化

在 Magnolia 5.3 中创建独立模块

未找到当前内容 magnolia 5.7.9 的模板定义

在 Magnolia CMS 上通过 Java 获取大坝资产链接