Plone:如何将mixin类应用于标准的ATFolder类
我有一个用于自定义基于原型的内容对象的Plone:如何将mixin类应用于标准的ATFolder类,plone,plone-4.x,archetypes,Plone,Plone 4.x,Archetypes,我有一个用于自定义基于原型的内容对象的getThumbnailPath方法;它选择预览图像,将缩放后的副本放入文件系统(如果尚未更新),并返回类似于/+++缩略图+++/.jpg的内容,以便Apache为缩略图提供服务。由于结果存储为列表视图的目录中的元数据字段,这应该非常有效:所有检查和缩放仅在重新计算元数据时完成,对于标准访问,不涉及Python线程 但是,我也需要一些文件夹的预览图像(例如,使用该文件夹中的第一个MyImage对象)。我可以将我的方法的一个特殊版本修补到ATFolder,但
getThumbnailPath
方法;它选择预览图像,将缩放后的副本放入文件系统(如果尚未更新),并返回类似于/+++缩略图+++/.jpg
的内容,以便Apache为缩略图提供服务。由于结果存储为列表视图的目录中的元数据字段,这应该非常有效:所有检查和缩放仅在重新计算元数据时完成,对于标准访问,不涉及Python线程
但是,我也需要一些文件夹的预览图像(例如,使用该文件夹中的第一个MyImage
对象)。我可以将我的方法的一个特殊版本修补到ATFolder
,但是注入我的mixin类可能会更干净。这可能吗
更新:
Ulrich Schwarz向我指出了使用适配器和接口的可能性(也许每个适配器和接口一个?)。基于此,我目前的想法是:
- 有一个接口类
,它由我的自定义类型和IThumbnailable
实现。它提供了ATFolder
方法,可能还提供了支持数据getThumbnailPath
- 有一个适配器,可能称为
,它可能提供thumbnail
方法的实现getThumbnailPath
图像
字段,并且该字段非空,则使用此图像:将其缩放版本存储到文件系统,并返回访问该文件系统的路径getRawText
返回包含属性的文本,该属性通过uid
引用对象,则查找该对象并返回其getThumbnailPath
方法的结果
MyImage
对象),请使用第一个(目录搜索,'sort\u on':'getObjPositionParent'
)并返回其getThumbnailPath
方法的结果getRawText
因此,对于最终的解决方案,我需要考虑是应该保持我的小层次结构还是检查每一个对象。来拯救?您的功能将位于一个单独的界面
IThumbnailable
,并且您可以提供代码,允许您将ATFolders和自定义类型强制转换为IThumbnailable
。这可能是一种方法,谢谢。我需要解决这个问题;可能我会更新我的问题…希望我正确地理解了您的要求,不确定您希望在何处显示缩略图,但要创建专用缩略图,您可以使用collective.contentleadimage扩展带有图像字段的文件夹。如果要显示文件夹中的第一个图像,请使用浏览器视图对模板添加一点逻辑。@IdaEbkes:我对几个旋转木马视图和列表视图使用缩略图。这些是我的网站上经常使用的,内容应该完全来自目录数据;一个很好的副作用是,现在所有这些缩略图都是由Apache直接提供的。目前,我基于monkeypatch的解决方案工作正常;然而,我试图消除这些有点黑客的解决方案。我在这里贴了一个链接到你的问题