C'est la procédure pour démarrer le clonage avec docker et essayer la balise du modèle.
Le docker plone est officiellement disponible. Je l'ai téléchargé et utilisé tel quel. https://github.com/plone/plone.docker
Commencer le clonage avec des options
% docker run --rm --name plone -v $PWD/plone-data:/data -p 8080:8080 -e SITE=plone plone
Si vous accédez à http: // localhost: 8080 / clone avec un navigateur, la première page s'affiche.
Vous pouvez le prévisualiser en en créant un nouveau dans le répertoire personnalisé.
Accédez à la liste des modèles personnalisés http://localhost:8080/plone/portal_skins/custom/manage_main
Dans le menu déroulant Sélectionner le type à ajouter en haut à droite du menu de navigation
Sélectionnez un modèle de page
Entrez l'ID dans la fenêtre contextuelle et appuyez sur le bouton Ajouter et modifier.
L'écran d'édition s'affiche http://localhost:8080/plone/portal_skins/custom/abc/pt_editForm
J'ai ajouté un modèle pour voir le contenu de REQUEST et ajouté la ligne suivante:
<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>
Vous pouvez écrire le script en python et l'appeler à partir du modèle.
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
Ce qui suit est ajouté au modèle ajouté précédemment.
<h2>context/def</h2>
<p tal:define="def context/def" tal:content="def">context/def</p>
Vous pouvez vérifier le résultat en accédant à l'URL suivante http://localhost:8080/plone/portal_skins/custom/abc