如何决定Typo3 Neos中的Settings.yaml选择哪个?

时间:2014-04-22 13:36:45

标签: typo3-flow typo3-neos

我对具有不同内容的多个域使用一个Neos安装。 复制包TYPO3.NeosDemoTypo3Org,删除节点标识符并进行一些替换使我附近所需的一切。

但是只有在Packages / Sites /中找到的第一个Settings.yaml似乎被解析了。对其他软件包(以下示例中的Test1和Test2)中的Settings.yaml的所有更改都将被忽略。

软件包/站点/ TYPO3.NeosDemoTypo3Org /配置/ Settings.yaml

TYPO3:
  Form:
    yamlPersistenceManager:
      savePath: 'resource://TYPO3.NeosDemoTypo3Org/Private/Form/'

软件包/站点/ UDF.Test1 /配置/ Settings.yaml

TYPO3:
  Form:
    yamlPersistenceManager:
      savePath: 'resource://UDF.Test1/Private/Form/'

软件包/站点/ UDF.Test2 /配置/ Settings.yaml

TYPO3:
  Form:
    yamlPersistenceManager:
      savePath: 'resource://UDF.Test2/Private/Form/'

当我删除第一个Settings.yaml(Packages / Sites / UDF.Test2 / Configuration / Settings.yaml)时,按字母顺序排列下一个Setting.yaml(Packages / Sites / UDF.Test1 / Configuration / Settings.yaml)用于所有3个站点包。当我也删除此文件时,将使用UDF.Test2中的Settings.yaml,依此类推。

如果有人可以启发我,那将是非常棒的。我是流动和新的新手,欢迎任何帮助。 RTFM,我知道,但正如所描述的here我必须相信,它应该像我一样工作吗?

替代方式?

是否可以不在站点包配置中设置savePath,而是在常用设置中./Packages/Application/TYPO3.Form/Configuration/Settings.yaml

我在

中看到了一个{@package}占位符
### BASE ELEMENTS ###
# NAMING: base class for everything is RENDERABLE
  'TYPO3.Form:Base':
    renderingOptions:
      templatePathPattern: 'resource://{@package}/Private/Form/{@type}.html'

但这在这里不起作用

TYPO3:
  Form:
    yamlPersistenceManager:
      #savePath: '%FLOW_PATH_DATA%Forms/'
      savePath: 'resource://{@package}/Private/Form/'

如你所见,我对这些东西并不是很有经验,但我很有动力。

1 个答案:

答案 0 :(得分:3)

使用所有Settings.yaml,但设置按包加载顺序合并。 包的加载顺序再次基于它们的依赖性。 所有三个包可能具有相同的依赖关系,因此它们一个接一个地加载(需要检查哪个排序),所以加载第三个Settings.yaml,然后加载第二个Settings.yaml并覆盖第三个,然后第一个是加载并再次覆盖第二个。每个设置路径只能设置一次,这就是原因。

无论如何,您尝试存档的内容可能无法正常工作。这是我们必须解决的问题之一(依赖于站点包的配置)。

可能的解决方法是使用带有表单配置的公共包,只需将savePath设置为此包或使用不同的子上下文(如Production / Domain1 Production / Domain2)并根据子上下文设置此设置不同,然后您可以定义域的子上下文(因为网站仍由域触发)。