=============
plone.indexer
=============
plone.indexer vereinfacht die Erstellung und Verwaltung eigener Indizees in Plone.
`plone.indexer`_ erlaubt das Erstellen von Adaptern zum Indizieren des ZCatalog.
.. _`plone.indexer`: http://pypi.python.org/pypi/plone.indexer
#. Zunächst wird ein Adapter-Paket erstellt::
$ mkdir vs.theme/vs/theme/adapters
$ touch vs.theme/vs/theme/adapters/__init__.py
#. Anschließend wird es in die Konfiguration eingeschlossen in ``vs.theme/vs/theme/configure.zcml``::
#. Ein einzelner Adapter wird dann konfiguriert in ``vs.theme/vs/theme/adapters/configure.zcml``::
#. Die Klasse ``hasTeaserImageDocument`` in ``vs.theme/vs/theme/adapters/indexer.py`` sieht dann so aus::
from plone.indexer import indexer
from Products.ATContentTypes.interfaces import ITextContent
def _hasTeaserImage(obj, fieldname):
""" generic wrapper """
field = obj.getField(fieldname)
if field is None:
return False
img = field.get(obj)
img_data = str(img.data)
return len(img_data) > 0
@indexer(ITextContent)
def hasTeaserImageDocument(obj):
""" Returns True/False if an teaser image exists or not """
return _hasTeaserImage(obj, 'teaserImage')