`dolmen.app.content` provides out-of-the-box utilities for Dolmen
applications content.
Getting started
===============
We import Grok and grok the package::
>>> import grok
>>> grok.testing.grok('dolmen.app.content')
We create a `dolmen.content` content::
>>> import dolmen.content
>>> class Mammoth(dolmen.content.Content):
... grok.name('A furry thing')
>>> manfred = Mammoth()
>>> manfred.title = u'A nice mammoth'
Indexes
=======
`dolmen.app.content` registers two indexes to catalog the
`dolmen.content.IBaseContent` created inside a Dolmen application::
>>> from dolmen.app.content import indexes
Base indexes
------------
The `dolmen.app.content.indexes.BaseIndexes` handles the title and the content type of an IBaseContent content::
>>> indexes.BaseIndexes.__grok_indexes__
{'content_type': <grok.index.Field object at ...>, 'title': <grok.index.Text object at ...>}
>>> indexes.BaseIndexes.__grok_indexes__['content_type']._attribute
'__content_type__'
Searchable text
---------------
`dolmen.app.content` provides a simple 'ISearchableText'
implementation, allowing full text searches. It comes in two parts.
The index::
>>> indexes.SearchableIndex.__grok_indexes__
{'searchabletext': <grok.index.Text object at ...>}
The adapter::
>>> from zope.index.text.interfaces import ISearchableText
>>> adapter = ISearchableText(manfred)
>>> adapter.getSearchableText()
u'A nice mammoth'
Thumbnailing
============
Thanks to `dolmen.thumbnailer`, `dolmen.app.content` provides a base
thumbnailing policy, using ZODB blobs as storage and introducing a new
scale.
Scales
------
Let's introspect our Miniaturizer component::
>>> from dolmen.app.content import thumbnails
>>> thumbnails.BlobMiniaturizer.factory
<class 'dolmen.blob.file.BlobValue'>
>>> print thumbnails.BlobMiniaturizer.scales
{'mini': (250, 250), 'square': (64, 64), 'thumb': (150, 150), 'large': (700, 700), 'small': (128, 128), 'preview': (400, 400)}
The new scale, 'square', scales down and crops the original image to
provide a square thumbnail. This is done using a IThumbnailer adapter::
>>> from dolmen.thumbnailer import IThumbnailer
>>> thumbnails.SquareThumbnailer
<class 'dolmen.app.content.thumbnails.SquareThumbnailer'>
>>> IThumbnailer.implementedBy(thumbnails.SquareThumbnailer)
True
Credits
=======
All Dolmen packages are sponsorised by NPAI (http://www.npai.fr)
Changelog
=========
0.2.1 (2010-02-25)
------------------
* Using PIL 1.1.7 instead of PILwoTK 1.1.6. This prevents having to
declare a third party archive download location.
* Maintenance cleaning for the release of ``Grok 1.1rc1``. Code is now
pep8 compliant.
0.2 (2010-02-01)
----------------
* Added dolmen.blob include in configure.zcml.
* Cleaning dependencies. The package is now zope.app free and relies
on the latest Grok evolution.
0.1 (2009-11-02)
----------------
* Initial release