[PYTHON] Starten Sie docker.plone und fügen Sie eine benutzerdefinierte Vorlage hinzu

Dies ist die Prozedur, um das Klonen mit Docker zu starten und das Tag der Vorlage zu testen.

Starten Sie Docker

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. スクリーンショット 2020-09-04 17.35.06.png

Vorlagenanpassung

Sie können eine Vorschau anzeigen, indem Sie eine neue im benutzerdefinierten Verzeichnis erstellen.

Vorlage hinzufügen

  1. Wechseln Sie zur Liste der benutzerdefinierten Vorlagen http://localhost:8080/plone/portal_skins/custom/manage_main

  2. Klicken Sie oben rechts im Navigationsmenü auf das Pulldown-Menü Typ auswählen スクリーンショット 2020-09-04 14.34.52.png

  3. Wählen Sie Seitenvorlage スクリーンショット 2020-09-04 14.35.15.png

  4. Geben Sie die ID in das Popup-Fenster ein und klicken Sie auf die Schaltfläche Hinzufügen und Bearbeiten. スクリーンショット 2020-09-04 14.40.37.png

  5. Der Bearbeitungsbildschirm wird angezeigt http://localhost:8080/plone/portal_skins/custom/abc/pt_editForm スクリーンショット 2020-09-04 14.42.28.png

Vorlage hinzugefügt

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>

Python-Skript

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>

Anzeige

Sie können das Ergebnis überprüfen, indem Sie auf die folgende URL zugreifen http://localhost:8080/plone/portal_skins/custom/abc スクリーンショット 2020-09-04 18.06.59.png

Referenz

Recommended Posts

Starten Sie docker.plone und fügen Sie eine benutzerdefinierte Vorlage hinzu
[Raspberry Pi] Fügen Sie ein Thermometer und ein Feuchtigkeitsmessgerät hinzu
Starten Sie einen Webserver mit Python und Flask