【问题标题】:Overwrite YAML-Files of individual forms with typoscript用打字稿覆盖单个表单的 YAML 文件
【发布时间】:2020-07-28 17:55:17
【问题描述】:

我尝试了几个小时用打字稿覆盖表单的 yaml 文件中的一些参数。我在手册中找到了这段话:

https://docs.typo3.org/c/typo3/cms-form/9.5/en-us/Concepts/FrontendRendering/Index.html?highlight=formdefinitionoverrides#typoscript-overrides

但我无法让它工作。另外我找不到调试我的 yaml 定义的方法。我尝试了提示

 typo3/sysext/form/Classes/Mvc/Configuration/ConfigurationManager.php::getConfigurationFromYamlFile()

但这只显示原型而不是表单。

所以我确实有一些问题:

  • 是否可以调试表单的yaml和typoscript的组合代码?
  • 手册中描述的 formDefinitionOverrides 是否真的有效 (TYPO3 9.5)
  • 什么是?我的表单在 yaml 文件中的标识符或在前端带有内容元素编号的标识符(myFormIdentifier-UidOfMyContentElement)
  • 是否可以使用标识符而不是数组索引? (多个嵌套数组 indizes 多达 10 个或更多条目让我抓狂。

谢谢!

【问题讨论】:

    标签: typo3 typo3-9.x


    【解决方案1】:

    我找到了如何使用标签而不是使用编号数组:

    yaml:

    type: Form
    identifier: test1
    prototypeName: standard
    renderables:
      page1:
        renderingOptions:
          previousButtonLabel: 'Previous step'
          nextButtonLabel: 'Next step'
        type: Page
        identifier: page-1
        label: Step
        renderables:
          field1:
            defaultValue: ''
            type: Text
            identifier: email-1
            label: 'My Email address'
            properties:
              validationErrorMessages:
                -
                  code: 1221559976
                  message: öasdlkhfö
    

    和排版:

    plugin.tx_form{
        settings{        
            formDefinitionOverrides {
                # identifier of form
                test1 {
                    renderables {
                        # first page of form
                        page1 {
                            renderables {
                                field1 {
                                    label = TEXT
                                    label.value = Eine ganze andere E-Mailaddresse
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    

    效果很好,但你不能混合使用 - 一个级别的所有文件都必须获得标签。这是有道理的,因为不可能在 php 数组中混合索引和键。

    【讨论】:

      【解决方案2】:

      是的,它确实有效。这是一个例子。

      本例中的标识符是“myformEN”。

      如果没有这种嵌套数组语法,您将无法使用 TypoScript。

      TypoScript

      plugin.tx_form{
          settings{
              yamlConfigurations.100 = EXT:user_site/Configuration/Form/CustomFormSetup.yaml
              
              formDefinitionOverrides {
                  # identifier of form
                  myformEN {
                      renderables {
                          # first page of form
                          0 {
                              renderables {
                                  # number of element in form
                                  0 {
                                      # another level (because of "Grid: Row")
                                      renderables {
                                          0 {
                                              defaultValue = TEXT
                                              defaultValue.value = My Text
                                          }
                                      }
                                  }
                              }
                          }
                      }
                  }
              }
          }
      }
      

      myformEN.form.yaml

      renderingOptions:
          submitButtonLabel: 'submit'
      identifier: myformEN
      label: 'Inquiry'
      type: Form
      prototypeName: standard
      […]
      renderables:
        -
          renderingOptions:
            previousButtonLabel: ''
            nextButtonLabel: Next
          identifier: page-1
          label: ''
          type: Page
          renderables:
            -
              type: GridRow
              identifier: gridrow-1
              label: 'Grid: Row'
              renderables:
                -
                  defaultValue: 'this will be overwritten by TypoScript'
                  type: Text
                  identifier: article
                  label: Article
                -
                  defaultValue: ''
                  type: Text
                  identifier: text-2
                  label: 'Amount'
      […]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-05-19
        • 2016-04-01
        • 2020-08-20
        • 1970-01-01
        • 2019-04-17
        • 2020-12-22
        • 1970-01-01
        相关资源
        最近更新 更多