Предоставлять предустановки (например, через fieldControls?) Для флажков в Flexform? - PullRequest
1 голос
/ 05 мая 2020

Что я хотел бы сделать, так это иметь кучу связанных флажков и несколько предустановок, каждый из которых будет предварительно выбирать определенную комбинацию c флажков. После выбора предустановки вы все равно сможете вносить в нее изменения, например, активировать / деактивировать флажки. Предустановка должна просто помочь вам начать работу, чтобы вам не приходилось одновременно устанавливать так много флажков.

Что показалось хорошим решением, так это использовать тип select с renderType = selectCheckBox здесь и добавить мои собственные fieldControls, которые выберут соответствующий пресет.

enter image description here

(В моем реальном примере, конечно, есть больше флажков)

Однако кажется, что невозможно добавить fieldControls для этот тип, см. проблему https://forge.typo3.org/issues/91303.

Для типа «флажок» также невозможно добавить fieldControls.

Все другие решения, которые я мог придумать до сих пор (например, выбор предустановок из списка с дополнительной предустановкой "custom", а затем наличие флажков только для "custom" предустановок, а другие предустановки установят определенные c настройки на фиксированное значение) приведет к тому, что возможность дополнительно изменить предустановку.

Есть ли другой способ сделать это?

1 Ответ

0 голосов
/ 11 мая 2020

В итоге я сделал это так:

  1. Можно отключить поле по умолчанию fieldControl «ResetSelection»

    Flexform:

    <fieldControl>
      <resetSelection>
        <disabled>1</disabled>
      </resetSelection>
    <fieldControl>
    

    Однако я обнаружил, что это не очень хорошая идея. Этот элемент управления сбрасывает поля до последнего сохраненного значения (или значений по умолчанию, если они еще не сохранены).

  2. Я нашел для моих требований выше, лучше использовать selectSingleBox . Это позволяет включать или выключать ряд параметров, а также добавлять настраиваемые элементы fieldControl.

  3. Я создал fieldControl для selectSingleBox для выбора полей в соответствии с предустановкой.

Это выглядит так:

В FlexForm

<settings.showFields>
  <TCEforms>
    <label>the title</label>
      <config>
        <type>select</type>
          <renderType>selectSingleBox</renderType>
          <size>17</size>
          <itemsProcFunc>classpath->method</itemsProcFunc> 
          <fieldControl>
            <presetAddressCard>
              <renderType>presetAddressCard</renderType>
            </presetAddressCard>
          ... etc.    

Также необходимо настроить fieldControl в ext_localconf. php и добавить класс. Я основал свой fieldControl на ResetSelection, который очень похож.

enter image description here

...