lunes 28 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')