visol / neos-assetcollectionhelpers
Neos 包,帮助处理在内容中使用 AssetCollections 的缓存失效问题
3.0.1
2021-09-07 13:47 UTC
Requires
- neos/media-browser: ~5.0 || dev-master
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