It is a procedure that started clone with docker and tried the tag of the template.
The plone docker is officially available. I downloaded it and used it as it is. https://github.com/plone/plone.docker
Start clone with options
% docker run --rm --name plone -v $PWD/plone-data:/data -p 8080:8080 -e SITE=plone plone
If you access http: // localhost: 8080 / plone with a browser, the top page will be displayed.
You can preview it by creating a new one in the custom directory.
Go to the list of custom templates http://localhost:8080/plone/portal_skins/custom/manage_main
From the Select type to add pull-down at the top right of the navigation menu
Select Page Template
Enter the Id in the pop-up window and press the Add and Edit button.
The edit screen is displayed http://localhost:8080/plone/portal_skins/custom/abc/pt_editForm
I've added a template to see the contents of REQUEST and added the following line:
<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>
You can write the script in python and call it from the template.
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
The following is added to the template added earlier.
<h2>context/def</h2>
<p tal:define="def context/def" tal:content="def">context/def</p>
You can check the result by accessing the following URL http://localhost:8080/plone/portal_skins/custom/abc