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


热门话题
用于读取OBS写入的java打开文件   java使用XFire通过ssl使用Web服务   java如何查看幸存者空间中的对象   不使用ActionListener从按钮执行java代码   java仅当用户执行某个操作时,如何清除应用程序的历史记录?   json无法反序列化'java'的实例。lang.Long`out-of-START\u对象标记;在弹簧靴柱上   JavaPOJO到OpenApi定义   java时间戳格式不显示不同的值   java Android:如何从片段切换到主要活动?   用于步进计数器/健身应用程序的java循环进度条   java Log4j更改特定记录器实例的记录器级别   JAVA中实现连接的数据结构   java Mockito静态函数mock   未找到java辅助技术:org。侏儒。可访问性。阿特克拉珀   java仅当列表中没有类似项时才向ArrayList添加项   java如何使用docx4j在word中添加合并字段?