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第三方库


热门话题
java JPanel不会对键绑定做出反应   当时间大于零时,不得在UI线程上调用java Await   JTextArea的java线程安全。追加   Java用户输入的字和行计数器   java以spreedsheat格式将数据保存到文件中   java构造函数的意义是什么?   java findViewById返回null,尽管组件的ID存在   java如何向按钮添加图像   java如何中断ExecutorService的线程   java如何将属性(例如枚举)绑定到不同类型的组件属性(例如每个枚举的映像)?   随机森林分类器的java实现   html使用java连接到一个站点并发布,HTTP状态代码200   从类访问属性时发生java编译错误   Java自动填充ArrayList,搜索更好的选项