Sie sind hier: Startseite / Vorlagen

Scripting

Als Administrator können Sie auf unserer DemoSite ein Templated Document oder Templated Portlet hinzufügen, das Ihnen erlaubt, dynamische Inhalte in Plone zu erstellen.

Anwendungsfälle

  • Verwenden von ungefiltertem HTML (<script> u.a.).
  • Hinzufügen dynamischher Listen und Tabellen auf Seiten.
  • Hinzufügen dynamischer E-Mail-Texte, Betreffzeilen und Empfänger in Aktionen von Regeln.
  • Unterschiedliche Texte für angemeldete und nicht-angemeldete Nutzer anzeigen.
  • Erstellen einfacher Text-Portlets mit dynamischen Inhalten.

Beispiel

Um zum Beispiel eine Liste aller Elemente im Ordner Effektive Bedienung zu erhalten, können Sie im Haupttext eines Templated Documents folgendes eingeben:

{{ list_folder("effektive-bedienung").decode("utf-8") }} 

Elemente

Dokumente

Hierzu kann der Artikeltyp Templated Document verwendet werden

Felder und Widgets

TemplatedTextField erlaubt Ihnen, in einem Templated Document dynamische Inhalte einzugeben, aus denen dann der Inhalt eines TextField() in Ihrem eigenen Artikeltyp generiert werden kann.

Portlets

Templated Portlet ermöglicht das Scripting auch in Portlets. Damit sind z.B. auch folgende Anwendungsfälle möglich:

  • Anzeigen der Portlets abhängig von der gewählten Sprache
  • Anzeige der Portlets nur für spezifische Nutzer
  • Anzeige der Portlets nur zu einer bestimmten Zeit

E-Mails

Für Regeln kann die Aktion Templated Mail Action verwendet werden um Skripting auch in den Feldern recipients, subject und message innerhalb von E-Mails zu verwenden.

Dokumentation

Im folgenden werden die verfügbaren Variablen und Funktionen beschrieben.Beachten Sie bitte, dass diese Dokumentation Tags als Funktionen beschreibt und zum Rendern der Tags ggf. () hinzugefügt werden muss.

Für das Templated Document stehen folgende Variablen von Plone zur Verfügung:

portal
Die Plone Site, z.B.
{{ portal.Title().decode("utf-8") }}
context
Der Kontext des Templated Documents, z.B.
{{ context.Title().decode("utf-8") }}
{{ context.absolute_url().decode("utf-8") }}
portal_url
Die URL der Plone-Site, z.B.
<a href="{{ portal_url() }}">Home</a>
object_url
Die URL des Objekts.
user
Der aktuelle Nutzer
request
Gibt Objekte der Site entsprechend der Anfrage zurück, z.B.
{{ query({"portal_type":"News Item","sort_on":"Date","sort_order":"reverse"}) }}
portal_state
Informationen über den aktuellen Status der Site wie z.B.
  • Ist der Nutzer angemeldet?
  • Welches ist die navigation_root?
  • Titel des Portals
  • Aktive Sprache?

Da Jinja die Strings als ASCII oder Unicode erwartet, müssen Sie in allen Ausgaben, die Umlaute o.ä. enthalten können, diese nach UTF-8 dekodieren.

Darüberhinaus können z.B. auch Viewlets und Provider angezeigt werden:

{{ viewlet("portal.logo") }}
{{ provider("plone.rightcolumn") }}

Weitere Informationen

Artikelaktionen