Dolmen ContentType Extension:Document

menhir.contenttype.document的Python项目详细描述


menhir.contenttype.documentDolmen基于Grok的应用程序。此文档类型有一个字段 允许所见即所得版本,并为全文搜索建立索引。

模式

此外,Document还有一个定义文本字段的专用模式 碱基的IDescriptiveSchema

>>> from dolmen.app.content import IDescriptiveSchema
>>> from menhir.contenttype.document import IDocument

>>> IDocument.isOrExtends(IDescriptiveSchema)
True

>>> from dolmen.content import schema
>>> from menhir.contenttype.document import Document

>>> IDocument in schema.bind().get(Document)
True

文本字段称为“正文”,因为它是文档的正文文本:

>>> for attr, doc in IDocument.namesAndDescriptions():
...   print attr, ':', doc
body : <zope.schema...Text object at ...>

工厂

为了创建Document内容,当前用户必须 被授予dolmen.content.Add权限,从 dolmen.app.security包:

>>> from dolmen.content import require
>>> require.bind().get(Document)
'dolmen.content.Add'

表格

所见即所得小部件由dolmen.widget.tinymce提供,使用 javascript库tinymce和jquery。添加表单和编辑表单 将显示小部件,因为menhir.contenttype.document 提供FieldsCustomizer适配器(请参见dolmen.forms.crud 文档):

>>> from dolmen.forms.crud import Edit
>>> mydoc = Document(title=u'Some title', body=u"Some body")

>>> from zope.publisher.browser import TestRequest
>>> request = TestRequest()

>>> editform = Edit(mydoc, request)
>>> editform.update()

>>> editform.fields['body'].mode
<Marker TINYMCE.INPUT>

指数化

使用ISearchableTextDocument进行全文索引。 适配器:

>>> from zope.index.text.interfaces import ISearchableText
>>> indexer = ISearchableText(mydoc)
>>> indexer.getSearchableText()
(u'Some title', u'', u'Some body\n\n')

>>> mydoc.body = u'<p>Rich content comes in <strong>HTML</strong></p>'
>>> indexer.getSearchableText()
(u'Some title', u'', u'Rich content comes in **HTML**\n\n')

>>> mydoc.description = u"I'm described"
>>> indexer.getSearchableText()
(u'Some title', u"I'm described", u'Rich content comes in **HTML**\n\n')

视图

Document有自己的索引视图,允许它在 简单的方法,没有默认的字段名(请参见 dolmen.forms.crud):

>>> from zope.component import getMultiAdapter
>>> view = getMultiAdapter((mydoc, request), name='index')

>>> from dolmen.app.layout import Page
>>> isinstance(view, Page)
True

>>> print view.content()
<div class="document">
  <h1>Some title</h1>
  <p>Rich content comes in <strong>HTML</strong></p>
</div>

更改日志

0.2(2011-02-14)

  • 更新为使用^{tt7}中的IDescriptiveContent$ 而不是dolmen.content中的IBaseContent 存在:文档现在除了^之外还有^ {< CD13> }属性 title。这种变化在索引器中得到了响应。
  • 更新的依赖项。

0.1(2010-07-20)

  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
当使用RequestDispatcher时,servlets Java最终没有被调用   java生成对具有可变参数数的方法的调用   java如何使用select子句中的参数化列映射iBATIS的查询?   java无法创建类型为org的插件。阿帕奇。登录中。log4j。果心阿佩德。元素RollingFile的RollingFileAppender   java当子实体和父实体之间存在OneTONE JPA关系时,是否可以将其与父实体一起持久化?   Android上的java Facebook集成fbconnect断开链接   获取方法调用方的java机制   从列表创建Oracle阵列时出现java问题   添加和检索元素的ArrayList的java ArrayList   在java中从字符串中删除无效的XML字符   java如何构建完整生成的maven模块   java如何准确地改变播放所有分辨率midi文件的速度?   shell javac:无效标志:/src/中位_度。ubuntu中的java   java使用从其他类的方法检索到的信息