我的自定义基于Archetypes的内容对象有getThumbnailPath
方法;它选择预览图像,将缩放后的副本放入文件系统(如果尚未更新),并返回类似/++thumbnails++/<image uid>.jpg
的内容,以便Apache提供缩略图。将结果存储为列表视图的目录中的元数据字段,这应该非常有效:所有检查和扩展仅在重新计算元数据时完成,对于标准访问,不涉及Python线程。
但是,我确实需要某些文件夹的预览图像(例如,使用该文件夹中的第一个MyImage
对象)。我可以将我的方法的特殊版本修改为ATFolder
,但是注入我的mixin类可能会更清晰。这可能吗?
更新 Ulrich Schwarz向我指出了使用适配器和接口的可能性(可能都是一个?)。基于此,我目前的想法是:
IThumbnailable
都有实现的接口类ATFolder
。它提供了getThumbnailPath
方法,也许还支持数据。thumbnail
,它可能提供getThumbnailPath
方法的实现。缩略图选择逻辑
对于我自己的内容类型,我能够基于一小部分mixin类实现以下内容:
image
字段,并且该字段非空,请使用此图像:将其缩放版本存储到文件系统并返回访问它的路径。getRawText
返回包含<img>
对象的src
对象通过uid
引用对象的文本,请找到此对象并返回结果它的getThumbnailPath
方法。对于文件夹,我想(目前通过猴子修补完成):
MyImage
个对象)的图像,请使用第一个(目录搜索,'sort_on': 'getObjPositionInParent'
)并返回其getThumbnailPath
方法的结果。getRawText
。回到mixin类:
因此,对于最终解决方案,我需要考虑是否应该维护我的小层次结构或检查每个对象。