0

我将一个 Neos 安装用于具有不同内容的多个域。复制 TYPO3.NeosDemoTypo3Org 包,删除节点标识符并进行一些替换,这让我得到了我需要的一切。

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

包/站点/TYPO3.NeosDemoTypo3Org/Configuration/Settings.yaml

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

包/站点/UDF.Test1/Configuration/Settings.yaml

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

包/站点/UDF.Test2/Configuration/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,依此类推。

如果有人能启发我,那就太棒了。我是 flow 和 neos 的新手,欢迎提供任何帮助。RTFM,我知道,但正如这里所描述的,我必须相信,它应该像我一样工作?

替代方式?

是否可以不在站点包配置中设置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/'

如您所见,我对这些东西并没有真正的经验,但我很有动力。

4

1 回答 1

3

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

在任何情况下,您尝试归档的内容可能都行不通。这是我们必须解决的问题之一(站点包依赖配置)。

一种可能的解决方法是使用带有表单配置的通用包并将 savePath 设置为此包或使用不同的子上下文(如 Production/Domain1 Production/Domain2)并将此设置设置为每个子上下文不同,然后您可以按域定义子上下文(因为网站无论如何都是由域触发的)。

于 2014-04-23T14:34:26.883 回答