Dies ist die Prozedur, um das Klonen mit Docker zu starten und das Tag der Vorlage zu testen.
Der Plone Docker ist offiziell verfügbar. Ich habe es heruntergeladen und so verwendet, wie es ist. https://github.com/plone/plone.docker
Starten Sie den Klon mit Optionen
% docker run --rm --name plone -v $PWD/plone-data:/data -p 8080:8080 -e SITE=plone plone
Wenn Sie mit einem Browser auf http: // localhost: 8080 / clone zugreifen, wird die obere Seite angezeigt.
Sie können eine Vorschau anzeigen, indem Sie eine neue im benutzerdefinierten Verzeichnis erstellen.
Wechseln Sie zur Liste der benutzerdefinierten Vorlagen http://localhost:8080/plone/portal_skins/custom/manage_main
Klicken Sie oben rechts im Navigationsmenü auf das Pulldown-Menü Typ auswählen
Wählen Sie Seitenvorlage
Geben Sie die ID in das Popup-Fenster ein und klicken Sie auf die Schaltfläche Hinzufügen und Bearbeiten.
Der Bearbeitungsbildschirm wird angezeigt http://localhost:8080/plone/portal_skins/custom/abc/pt_editForm
Ich habe eine Vorlage hinzugefügt, um den Inhalt von REQUEST anzuzeigen, und die folgende Zeile hinzugefügt:
<h2>container/REQUEST</h2>
<p tal:replace="structure container/REQUEST">container/REQUEST</p>
http://localhost:8080/plone/portal_skins/custom/abc/pt_editForm
<!DOCTYPE html>
<html>
<head>
<title tal:content="template/title">The title</title>
<meta charset="utf-8" />
</head>
<body>
<h2><span tal:replace="context/title_or_id">content title or id</span>
<span tal:condition="template/title"
tal:replace="template/title">optional template title</span></h2>
This is Page Template <em tal:content="template/id">template id</em>.
<h2>context/def</h2>
<p tal:define="def context/def" tal:content="def">context/def</p>
<h2>container/REQUEST</h2>
<p tal:replace="structure container/REQUEST">container/REQUEST</p>
</body>
</html>
Sie können das Skript in Python schreiben und es aus der Vorlage aufrufen.
http://localhost:8080/plone/portal_skins/custom/def/ZPythonScriptHTML_editForm
# Example code:
# Import a standard function, and get the HTML request and response objects.
from Products.PythonScripts.standard import html_quote
request = container.REQUEST
response = request.response
# Return a string identifying this script.
text = 'This is the %s %s in %s' % (script.meta_type,
html_quote(script.title_and_id()),
container.absolute_url())
print(text)
#print(container.REQUEST.BASE1)
#print(container.REQUEST)
return printed
Das Folgende wird der zuvor hinzugefügten Vorlage hinzugefügt.
<h2>context/def</h2>
<p tal:define="def context/def" tal:content="def">context/def</p>
Sie können das Ergebnis überprüfen, indem Sie auf die folgende URL zugreifen http://localhost:8080/plone/portal_skins/custom/abc