2011-09-20 8 views
5

¿Cuál es la mejor manera de mostrar la imagen de un tipo de contenido Plone basado en Destreza en una vista de lista?¿Cómo mostrar la imagen de un tipo de contenido Plone basado en Destreza en una vista de lista?

Digamos que tengo una carpeta con objetos de contenido basados ​​en Destreza que proporcionan un campo de imagen y quiero enumerar los objetos (como cerebros de catálogo) junto con su imagen. Es posible mostrar las imágenes en el anuncio llamando a su dirección URL absoluta:

<img src="" tal:attributes="src string:${item/getURL}/@@images/image/thumb" /> 

Aunque, Plone generará un error si la imagen no existe y no veo una buena manera de comprobar si la imagen existe en una plantilla de página. Obviamente no queremos despertar los objetos para una lista, para buscar la imagen.

¿Tengo que crear una columna de metadatos de imagen en el catálogo o hay una solución mejor que no veo?

+0

que tenía una pregunta similar y yo recibiera las respuestas. http://usarios-plone.2295514.n2.nabble.com/Solicito-ayuda-para-ponerle-foto-a-mi-Congreso-td6860749.html#a6887162 – user1162968

Respuesta

5

No me preocuparía demasiado por despertar objetos en una lista, siempre que esté correctamente agrupada. Si está utilizando los campos de plone.app.textfield y plone.namedfile, los datos grandes se guardan en objetos persistentes por separado, por lo que el objeto del elemento de contenido principal es relativamente liviano. Por supuesto, haga su propia evaluación comparativa si quiere estar seguro de que no le hace daño a su caso.

+0

Correcto, olvidé que los datos de imagen para las manchas se almacenan por separado de todos modos. – tisto

4

Hay una receta sobre cómo hacer esto en Professional Plone 4 Development (capítulo 10, creo). Desafortunadamente, realmente no puedo recordar cómo hacerlo ahora. :)

+0

¡Gracias por la pista! Voy a echar un vistazo y pegar la respuesta aquí. – tisto

+0

Por favor, asegúrese de no publicar ningún material con derechos de autor aquí. Proporcione su propia respuesta a la pregunta. – zedr

+0

zedr - Escribí ese libro y no publicaré material directamente. Solo quería dar una respuesta a Timo, incluso si no tenía tiempo para buscarla. – optilude

0

Crea un metadato en portal_catalog donde almacenará una ruta a una imagen válida. Cree un script de python del mismo nombre que verificará si el objeto tiene una imagen y, en el caso de que no haya imagen, devolverá una por defecto.

0

Un ejemplo para el control de campo de la imagen está disponible:

class product(grok.View): 
    grok.context(IDexterityContent) 
    grok.require('zope2.View') 
    grok.name('view') 

    def update(self): 
     """ 
     """ 
     # Hide the editable-object border 
     context = self.context 
     request = self.request 
     request.set('disable_border', True) 


    #brain come from contained image field 's object 
    def isImageAvalable(self,brain=None): 
     """判断图片字段是否有效""" 
     try: 
      if brain is None: 
       image = self.context.image.size 
      else: 
       image = brain.getObject().image.size 

      return (image != 0) 

     except: 
      return False 
Cuestiones relacionadas