环境: eea.facetednavigation 4.3.7、plone.app.contenttypes 1.1b5、Plone 8.7
我有一个自定义的Dexterity容器类型,Monument,它只保存图像项。我的目的是让Monument containing Image items的行为像News Item with the Image field一样。如果Monument中有多个图像项,则返回第一个或随机返回的图像项。
这样,我就可以将纪念碑项目及其图像显示为eea.facetednavigation视图的缩略图。
仅供参考,在eea.facetednavigation/views/preview-item.pt中有3种情况可以显示缩略图:
is_namedimage python:getattr(getattr(context, 'image', None), 'getImageSize', None) is not None;
image_thumb exists:context/image_thumb;
image_tag python:getattr(context, 'tag', None)"

plone.app.discussion/interfaces.py的例子启发了我。因此,我尝试了以下方法:
在models/monument.xml中
<schema>
...
<field name="image"
type="plone.namedfile.field.NamedBlobImage">
<title i18n:translate="">Image</title>
<readonly>True</readonly>
</field>
...
</schema>在content.py中
@implementer(IMonument)
class Monument(Container):
"""Container Subclass for Monument
"""
@property
def image(self):
catalog = getToolByName(self, 'portal_catalog')
path = '/'.join(self.getPhysicalPath())
brain = catalog(path={"query": path}, portal_type=['Image'])
obj = brain[0].getObject()
return obj.image但是,纪念碑项目似乎没有相应的image属性。我是在朝着正确的方向前进吗?任何提示都是值得感谢的。
发布于 2016-04-03 20:11:42
你能为你的纪念碑-文件夹类型使用LeadImageBehavior吗?如果您需要一个image字段,请在profile/default/types/stanent.xml中添加此字段。然后,您可以为纪念碑注册IObjectModifiedEvent并在事件中操作imagefield。
<?xml version="1.0"?>
<object name="Monument" meta_type="Dexterity FTI">
<property name="behaviors" purge="False">
<element value="plone.app.contenttypes.behaviors.leadimage.ILeadImage"/>
</property>
</object>https://stackoverflow.com/questions/36234373
复制相似问题