跳转到主要内容

Dolmen内容类型扩展:图像

项目描述

menhir.contenttype.image 为基于 GrokDolmen 应用程序提供以图像为中心的内容类型。

模式

menhir.contenttype.imageImage 内容提供自定义模式,扩展了来自 dolmen.app.contentIDescriptiveSchema 接口。

>>> 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.imageImage 内容使用ZODB Blob存储数据。工厂类 Imageimage 属性是来自 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

图标

内容通过 dolmen.app.content 包注册了一个图标

>>> 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.layoutPage

>>> 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>
    &mdash;
    <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 中的 IDescriptiveSchema 继承,而不是从 dolmen.content 中的 IBaseContent 继承。这增加了一个 description 属性,以及已经存在的 title

0.3 (2011-01-13)

  • 资源现在通过 fanstatic 进行注册和声明。

0.2 (2010-07-27)

  • 包装修正。

0.1 (2010-07-21)

  • 初始发布

项目详情


下载文件

下载适用于您平台的文件。如果您不确定该选择哪个,请了解更多关于 安装包 的信息。

源分发

menhir.contenttype.image-0.4.tar.gz (6.9 kB 查看哈希值)

上传时间

支持