TYPO3 EXT: сформировать переопределение TypoScript для поля по его идентификатору во всех формах - PullRequest
2 голосов
/ 04 августа 2020

У меня есть несколько форм, и у всех есть флажок конфиденциальности, который обозначен identifier: privacyCheckbox, и я хочу динамически отображать / переопределять некоторую конфигурацию с помощью typoscript.

Это действительно отлично работает, если я точно знаю форму идентификатор и положение поля:

plugin.tx_form {
  settings {
    formDefinitionOverrides {

      # "defaultContact" is my form's name
      defaultContact {
        renderables {
          0 {
            renderables {
              # "7" is the order/position of the privacy field in the form definition
              7 {
                renderingOptions {
                  translation {
                    arguments {
                      label {
                        0 = TEXT
                        0.typolink {
                          parameter = {$global.pids.privacyPage}
                          returnLast = url
                          forceAbsoluteUrl = 1
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

Вместо «7» я даже мог бы использовать aSpecificKey, если бы мое определение формы YAML выглядело бы так ...

    renderables:
      myEmailKey:
        defaultValue: ''
        type: Text
        identifier: email
        label: E-Mail
      aSpecificKey:
        type: Checkbox
        identifier: privacyCheckbox

Но я хотите, чтобы редактор позволял редактировать форму и переупорядочивать поля, поэтому он всегда будет сохраняться как ...

    renderables:
      -
        defaultValue: ''
        type: Text
        identifier: email
        label: E-Mail
      -
        type: Checkbox
        identifier: privacyCheckbox

..., что приведет к созданию внутреннего массива c всех полей.

Итак, теперь мои вопросы:

  • Есть ли способ применить мои настройки переопределения для всех форм и не применять их к каждой форме по ее имени?
  • Есть ли другой способ применить переопределения к полю без ручного изменения сгенерированного YAML или без подсчета позиции поля в форме? То есть, я установил identifier: privacyCheckbox в определении - правильно ли, что я не могу использовать этот идентификатор для доступа к полю?
...