visol/neos-assetcollectionhelpers

Neos 包,帮助处理在内容中使用 AssetCollections 的缓存失效问题

3.0.1 2021-09-07 13:47 UTC

This package is auto-updated.

Last update: 2024-09-07 19:50:22 UTC


README

此 Neos 包解决了处理 AssetCollections 节点时的一些问题。

在 Neos 中,您可以在 SelectBoxEditor 中选择任何实体。Neos 中的 AssetCollections 是实体,如果您想提供文件列表或相册而不必手动选择每个文件,它们非常有用。

唯一的问题是内容缓存并不知道以下更改

  • AssetCollections 中的一个 Asset 被编辑/删除/替换
  • Asset 被添加到/从 AssetCollections 中删除

因此,如果您例如向现有的 AssetCollections 上传新的 Asset,您的文件列表仍然只会显示在缓存上次构建时存在的文件。

此包为您提供了处理这些问题的必要实现。

兼容性和维护

此包目前正在维护以下版本

示例 NodeType 配置

SelectBoxEditor 中使用 AssetCollection

'My.FoobarCom:Content.FileList':
  [...]
  properties:
    assetCollection:
      type: 'Neos\Media\Domain\Model\AssetCollection'
      ui:
        label: i18n
        inspector:
          group: 'resources'
          editor: 'Neos.Neos/Inspector/Editors/SelectBoxEditor'
          editorOptions:
            dataSourceIdentifier: visol-neos-assetcollections
        reloadIfChanged: true
 

示例 fusion 缓存配置

在 Fusion 中,我们为给定的 AssetCollection 添加一个缓存标签

prototype(My.FoobarCom:Content.FileList) < prototype(Neos.Neos:ContentComponent) {
    assetCollection = ${q(node).property('assetCollection')}
    @context.assetCollection = ${this.assetCollection}

    @cache {
        mode = 'cached'
        entryIdentifier {
            node = ${node}
        }
        entryTags {
            1 = ${'Node_' + node.identifier}
            2 = ${AssetCollection.Caching.assetCollectionTag(assetCollection)}
        }
    }
    
    [... configure output]
}

然后此包会监视资产和资产集合的更改,并刷新所有具有受影响缓存标签的节点的缓存。

致谢

https://discuss.neos.io/t/guide-how-to-select-entities-in-the-inspector-neos-2-3-lts/1664

visol digitale Dienstleistungen GmbH, www.visol.ch