通过Generic setup添加图片内容类型

通过Generic setup添加图片内容类型

展示怎样通过GS程序,在包的策略文件中,自动将文件系统中的图片,转换为plone系统中图片内容:
假定在GS profile文件夹下有个名为images的文件夹,形如: … > profiles > default > images。
import StringIO
import transaction


def setupVarious(context):

    if context.readDataFile('ploneconf2011.theme_default.txt') is None:
            return

    # set the default front page property of layout to be a new view
    site = context.getSite()
    front = site.get('front-page')
    if front:
        front.layout = 'home_page_view'
        
    # set the initial images
    slide = site.get('slideshow-folder')
    if slide:
        
        # only add if this is a first time setup
        if not slide.getChildNodes():
            # XXX: this would be fun if it was reading a metadata file instead :)
            # dreams for another day I guess...
            addMe = [
                        ("ss-sprint.jpg", "Contribute Back", "Sprint | November 7-8"),
                        ("ss-conf.jpg", "Catch Up", "Conference | November 3-6"),
                        ("ss-training.jpg", "Get Learned", "Training | November 1-2"),
                    ]
            for (location, title, description) in addMe:
                
                imageId = location.split(".")[0]
                
                imageFile = context.openDataFile(location, 'images')
                if imageFile:
                    transaction.begin() # in case this list is big
                    
                    slide.invokeFactory(id=imageId, type_name='Image')
                    newImage = slide.get(imageId)
                    newImage.setImage(imageFile.read())
                    imageFile.close()
                    
                    newImage.setTitle(title)
                    newImage.setDescription(description)

                    # required for title/desc to be in catalog
                    newImage.reindexObject()

                    transaction.commit()


设置