【问题标题】:How decides Typo3 Neos which Settings.yaml to choose?Typo3 Neos 如何决定选择哪个 Settings.yaml?
【发布时间】:2014-04-22 13:36:45
【问题描述】:

我将一个 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,我知道,但正如 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/'

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

【问题讨论】:

    标签: typo3-flow neoscms


    【解决方案1】:

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

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

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

    【讨论】:

    • 到目前为止,Kitsunet...我需要修复我的系统,现在我将尝试更进一步...您的第一个可能的解决方法对我不起作用,因为我需要不同的表单设置(标签和地址)为每个站点包。如果我没有误解你的话,这种行为是真实的吗?表单配置的通用包符合./Packages/Application/TYPO3.Form/Configuration/Settings.yaml?
    • 关于使用不同的子上下文我不太明白,该怎么做。您能否给我发一个链接以获取更多信息?特别是关于按域定义子上下文以及如何触发站点。
    • 我可以通过检查包裹的加载顺序来解决这个任务吗?也许我对所有站点包都有相同的依赖关系,因为我为我的站点包克隆了包 TYPO3.NeosDemoTypo3Org?但是对于每个域,我只需要加载一个站点包,这样设置就不会被覆盖。依赖项在作曲家清单中配置为描述的here?需要深入研究...
    • 请在我的问题中查看我的 alternative way,因为无法在 cmets 中格式化代码?
    • 不幸的是,这些变量仅在模板上下文中被替换。我认为您可能可以扩展 \TYPO3\Form\Persistence\YamlPersistenceManager 以接受其他信息。要使用子上下文解决它,另请参阅此处的信息:linklink
    猜你喜欢
    • 2015-06-23
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多