Personal tools
You are here: Home Dokumentationen Zope/Plone Hilfe FAQs Plone - Portal Root ermitteln
Document Actions

Plone - Portal Root ermitteln

Up to Table of Contents

Wie bekomme ich eine Referenz auf das Portal Root Objekt in Plone?

Portal Root ermitteln

Portal root ist in Plone code als portal Objekt verfügbar.

In quick installer scripten install(self), ist self eine Referenz auf das Portal Root.

In unit tests, kann man mit self.portal auf das Portal root zugreifen.


Falls man keine direkte portal variable hat, kann man sich diese wie folgt holen:

from Products.CMFCore.utils import getToolByName

portal_url = getToolByName(context, "portal_url")
portal = portal_url.getPortalObject()

oder ab Plone 3 ist die offizielle Variante so:

from zope.component import getMultiAdapter
pstate = getMultiAdapter((self.context, self.request), name='plone_portal_state')
portal = pstate.portal()

Diese scheint aber langsamer zu sein als die alte Variante mit getToolByName, so das ich die folgende Variante nur empfehlen kann:

from zope.app.component.hooks import getSite
portal = getSite()

Diese hat weiterhin den Vorteil das sie ohne jeden context auskommt.