martes, 29 de enero de 2008

Crear imágenes en plone de forma programática

Partiendo de que tenemos una carpeta "imagenes" en nuestro plone site creamos de forma programática una carpeta Banners y agregamos una imagen "baner_01.jpg" que pondremos dentro del directorio import del zinstance en nuestro filesystem

#localiza el Folder imagenes en la raiz del portal
imagens = getattr(portal, 'imagenes', None)
#crea un nuevo Folder en su interior para contener los banners
imagens.invokeFactory('Folder', id='banners', title='Banners')
imgban = getattr(imagens, 'banners', None)
#crea una imagen dentro del Folder banners
imgban.invokeFactory('Image', id='banner_01.jpg', title='Mi super Banner 01')
newImage = getattr(imgban, 'banner_01.jpg')
#lee el contenido binario de la imagen desde el fs
newImage.edit(file=file(INSTANCE_HOME+'/import/banner_01.jpg').read())
#si se creó con éxito pone la imagen como publicada
if newImage is not None:
portal_workflow.doActionFor(newImage, 'publish')

No hay comentarios: