Globale Variablen
In Plone 3.x mussten einige Variablen nicht explizit in einem Template definiert werden, da sie bereits als global_defines in das main_template eingefügt wurden. Ab Plone 4 müssen auch diese Variablen wieder explizit definiert werden. Hier ein Überblick über die gebräuchlichsten dieser globalen Variablen:
- portal
- Das Plone-Site-Root-Objekt
- portal_url
- Die URL des Plone-site root-Objekts
- member
- Der aktuell angemeldete Nutzer
- checkPermission
Funktion, die überprüft ob der aktuell angemeldete Nutzer im aktuellen Kontext eine bestimmte Berechtigung hat. Hier ein Beispiel aus parts/plone/CMFPlone/skins/plone_forms/folder_rename_form.cpt:
tal:define="canModifyItem python:checkPermission('Modify portal content', obj);"
- isAnon
- True wenn der aktuelle Nutzer nicht angemeldet ist
- is_editable
- True wenn der aktuelle Nutzer den aktuellen Kontext editieren darf
- isLocked
- True wenn das aktuelle Objekt für das Editieren gesperrt ist
Einen vollständigen Überblick über die verfügbaren Variablen erhalten Sie im Docstring der globalize()-Methode in Products.CMFPlone.browser.interfaces.IPlone.
Hilfsansichten
In plone.app.layout.globals sind Hilfsansichten definiert, mit denen Sie sich häufig genutzte Informationen anzeigen lassen können:
- @@plone_tools
- Zugang zu den gebräuchlichsten CMF Tools
- @@plone_context_state
- Informationen des aktuellen Kontexts, wie URL, Pfad, Status und Editierbarkeit
- @@plone_portal_state
- Informationen über die aktuelle Plone-Site, wie URL der Site, aktueller Nutzer und ob er anonym ist
Ein Vorteil dieser Hilfsansichten ist, dass ihre Methoden gecached werden, sodass sie nur bei der ersten Anfrage berechnet werden müssen.
Wie diese Hilfsansichten in Viewlets verwendet werden, können Sie z.B. in plone/app/layout/viewlets/content.py sehen:
self.portal_state = getMultiAdapter((self.context, self.request), name=u'plone_portal_state') self.portal_url = self.portal_state.portal_url()
Als Beispiel, wie diese Hilfsansichten in Page Templates verwendet werden können, hier ein Auszug aus plone/app/portlets/portlets/login.pt:
tal:attributes="value context/@@plone_context_state/current_page_url"
Eine vollständige Übersicht über die verfügbaren Interfaces finden Sie in plone.app.layout.globals.interfaces.