环境:Plone 4.3.7,plone.app.contenttypes 1.1b5,eea.facetednavigation 8.7
我有一个自定义的敏捷容器类型Monument,它仅包含图像项。我的目的是让Monument containing Image items
表现得像News Item with the Image field
。如果纪念碑内有多个图像项目,则第一个图像项目或随机图像项目返回。
这样,我可以用他们的图像显示纪念碑项目作为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
但是,似乎Monument项目没有相应的image
属性。我正朝着正确的方向前进吗?任何提示都表示赞赏。
答案 0 :(得分:0)
您可以将MonumentImageBehavior用于Monument-Foldertype吗?在profiles / default / types / monument.xml中,如果需要图像字段,请添加此项。 然后,您可以为Monument注册IObjectModifiedEvent并在事件中操作图像字段。
<?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>