1

我想做的是有一堆相关的复选框和几个预设,每个预设将预先选择一个特定的复选框组合。选择预设后,您应该仍然可以对其进行更改,例如激活/停用复选框。预设应该只是帮助您入门,因此您不必一次单击这么多复选框。

似乎一个不错的解决方案是在此处使用带有renderType=selectCheckBox的选择类型,并添加我自己的 fieldControls,它将选择相应的预设。

在此处输入图像描述

(在我的真实例子中,当然还有更多的复选框)

但是,似乎无法为这种类型添加 fieldControls,请参阅问题https://forge.typo3.org/issues/91303

对于“复选框”类型,也不能添加 fieldControls。

到目前为止,我能想到的所有其他解决方案(例如,从带有附加预设“自定义”的列表中选择预设,然后只为“自定义”预设设置复选框,其他预设会将特定设置设置为固定值)导致无法另外修改预设。

有没有其他方法可以做到这一点?

4

1 回答 1

0

我最终这样做了:

  1. 可以禁用默认的 fieldControl “ResetSelection”

    弹性形式:

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

    但是,我发现这不是一个好主意。此控件将字段重置为上次保存的值(如果尚未保存,则为默认值)。

  2. 我发现对于我上面的要求,最好使用selectSingleBox。这允许打开或关闭许多选项,您可以添加自定义字段控件。

  3. 我为 selectSingleBox 创建了一个 fieldControl,用于根据预设选择字段。

这看起来像这样:

在 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.    

还必须在 ext_localconf.php 中配置 fieldControl 并添加类。我的 fieldControl 基于 ResetSelection,它非常相似。

在此处输入图像描述

于 2020-05-11T14:41:48.063 回答