2016-03-26 7 views
2

Umgebung: Plone 4.3.7, plone.app.contenttypes 1.1b5, eea.facetednavigation 8.7Geschicklichkeit Container Typ mit Bild Attribut

ich einen benutzerdefinierten Geschicklichkeit Containern Typen habe, Monument, die nur Bildobjekte halten. Meine Absicht ist es, Monument containing Image items Verhalten wie News Item with the Image field zu machen. Falls es innerhalb von Monument mehr als ein Bildobjekt gibt, wird das erste oder ein zufälliges zurückgegeben.

Auf diese Weise kann ich Monument-Elemente mit ihrem Bild als Miniaturansichten für eea.facetednavigation-Ansichten anzeigen.

FYI, gibt es drei Fälle, in eea.facetednavigation/views/preview-item.pt Thumbnails zeigen:

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)" 

enter image description here

Das Beispiel bei plone.app.discussion/interfaces.py mich inspiriert. Also versuche ich folgendes:

In models/monument.xml:

<schema> 
... 
<field name="image" 
    type="plone.namedfile.field.NamedBlobImage"> 
    <title i18n:translate="">Image</title> 
    <readonly>True</readonly> 
</field> 
... 
</schema> 

In 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 

Aber, so scheint es, Monument Artikel nicht image Attribut entsprechend gelangt. Bewege ich mich in die richtige Richtung? Irgendwelche Hinweise werden geschätzt.

+1

Für eine out-of-the-box-Lösung können Sie versuchen, eea.depiction Add-on http://eea.github.io/docs/eea.depiction/index.html. Beachten Sie jedoch, dass nach der Installation Thumbnails für alle Ihre Inhaltstypen bereitgestellt werden. – avoinea

+0

Dank @avoinea, das ist inspirierend. Es macht auch Sinn, ein solches generisches System zum Erstellen von Thumbnails bereitzustellen. Hoffentlich wird es bald Dexterity-Unterstützung geben. https://picasaweb.google.com/lh/photo/AshRjMgJmMYTdgNW0rPoiltMTjNZETYmyPJy0liipFm0?feat=directlink – marr

Antwort

0

Können Sie LeadImageBehavior für Ihren Monument-Foldertype verwenden? Fügen Sie dies in profiles/default/types/monument.xml hinzu, wenn Sie ein Bildfeld benötigen. Dann können Sie IObjectModifiedEvent für Monument registrieren und das Bildfeld im Ereignis bearbeiten.

<?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>