网格元素和flexforms:通过简短的虚拟名称访问flexform值

时间:2019-04-15 15:39:42

标签: typo3 typo3-9.x tx-gridelements

我将网格元素与flexform结合使用以进行某些配置,并且无法通过“ flexform_fieldname

读取给定的flexform值

系统/版本:

  • TYPO3 9.5
  • Gridelements 9.2

设置权限:

pageStripe {
  frame = 3
  config {
    colCount = 1
    rowCount = 1
    rows {
      1 {
        columns {
          1 {
            name = Title
              colPos = 10
          }
        }
      }
    }
  }
  flexformDS = FILE:EXT:path/to/PageStripe.xml
}

Flexform结构:

<bgcolor type="array">
  <TCEforms>
    <label>Label</label>
    <config>
      <type>select</type>
      <items type="array">
        <numIndex index="0" type="array">
          <numIndex index="0">Default (no background color)</numIndex>
          <numIndex index="1">default</numIndex>
        </numIndex>
      </items>
    </config>
  </TCEforms>
</bgcolor>

我的网格元素布局html中的流体输出:

<f:debug>{flexform_bgcolor}</f:debug> // output = NULL
<f:debug>{data.flexform_bgcolor}</f:debug> // output = NULL
<f:debug>{data.pi_flexform.data.general.lDEF.bgcolor.vDEF}</f:debug> // output = correct value

问题:这是我的代码中的错误配置还是最新版本的网格元素中的错误,即简短的虚拟名称(flexform_bgcolor而不是data.pi_flexform)无法读取flexform值。 data.general.lDEF.bgcolor.vDEF),即使将“ resolveFlexFormData”设置为1?

1 个答案:

答案 0 :(得分:1)

这既不是错误也不是错误的配置,但是启用了dataProcessing后,您必须位于FLUIDTEMPLATE之内。因此,无需在虚拟字段中提供FlexForm值,因为您可以直接在Fluid内部访问数组键,而在TypoScript内部是不可能的。

因此,使用uf userFunc的“老式” TypoScript静态模板文件仍提供这些字段,而新的和推荐的静态文件则不提供。