Dolmen内容类型扩展:图像
menhir.contenttype.image的Python项目详细描述
menhir.contenttype.image提供以图像为中心的内容类型 对于基于grok的应用程序。
模式
menhir.contenttype.image图像内容提供自定义架构, 从dolmen.app.content:
扩展idescriptiveschema接口>>> from dolmen.app.content import IDescriptiveSchema >>> from menhir.contenttype.image import IImage >>> IImage.isOrExtends(IDescriptiveSchema) True
iImage接口描述了图像字段,即存储 已上载图像数据。该字段来自dolmen.file:
>>> for attr, doc in IImage.namesAndDescriptions(): ... print attr, ':', doc image : <dolmen.file.field.ImageField object at ...>
工厂
menhir.contenttype.image图像内容使用zodb blob 存储数据。factory类的图像属性,图像, 是来自dolmen.blob:
的blob属性>>> from menhir.contenttype.image import Image >>> Image.image <dolmen.blob.property.BlobProperty object at ...>
实例相当简单:
>>> import os.path >>> path = os.path.join(os.path.dirname(__file__), 'image.png') >>> imagefile = open(path) >>> image = Image(title=u"My Image", image=imagefile) >>> imagefile.close()
工厂受公共dolmen.app.security权限保护:
>>> from dolmen.content import require >>> print require.bind().get(image) dolmen.content.Add
图标
由于^{tt3},内容注册了一个图标$ 套餐:
>>> from zope.component import getMultiAdapter >>> from zope.publisher.browser import TestRequest >>> request = TestRequest() >>> icon = getMultiAdapter((image, request), name="icon") >>> print icon <zope.browserresource.icon.IconView object at ...>
视图
内容注册自己的索引视图。它显示图像和 下载链接。为了能够显示内容,我们需要它持久化 在可定位树中,因为链接依赖于url:
>>> from zope.component.hooks import getSite >>> site = getSite() >>> site['image'] = image
我们现在可以召唤并渲染这个视图。景色是 dolmen.app.layout页:
>>> from dolmen.app.layout import Page >>> index = getMultiAdapter((image, request), name="index") >>> isinstance(index, Page) True >>> index.update() >>> print index.content() <h1>My Image</h1> <div class="content"> <p class="download"> <a href="http://127.0.0.1/image/++download++image" title="Download">Download</a> — <span>1 KB</span> </p> <div class="image"> <a href="http://127.0.0.1/image/++thumbnail++image.large" class="image-link" title="My Image"> <img src="http://127.0.0.1/image/++thumbnail++image.preview" /> </a> </div> </div>
更改日志
0.4(2011-02-14)
- 模式现在继承自 dolmen.app.content,不再来自 dolmen.content。这将添加一个描述属性以及 已经存在的<引用>标题>引用。
0.3(2011-01-13)
- 由于fanstatic,资源现在已注册并声明。
0.2(2010-07-27)
- 包装更正。
0.1(2010-07-21)
- 初始版本