[PYTHON] Lancez docker.plone et ajoutez un modèle personnalisé

C'est la procédure pour démarrer le clonage avec docker et essayer la balise du modèle.

Démarrer le docker

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

Réglage du modèle

Vous pouvez le prévisualiser en en créant un nouveau dans le répertoire personnalisé.

Ajouter un modèle

  1. Accédez à la liste des modèles personnalisés http://localhost:8080/plone/portal_skins/custom/manage_main

  2. Dans le menu déroulant Sélectionner le type à ajouter en haut à droite du menu de navigation スクリーンショット 2020-09-04 14.34.52.png

  3. Sélectionnez un modèle de page スクリーンショット 2020-09-04 14.35.15.png

  4. Entrez l'ID dans la fenêtre contextuelle et appuyez sur le bouton Ajouter et modifier. スクリーンショット 2020-09-04 14.40.37.png

  5. L'écran d'édition s'affiche http://localhost:8080/plone/portal_skins/custom/abc/pt_editForm スクリーンショット 2020-09-04 14.42.28.png

Modèle ajouté

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>

script python

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>

afficher

Vous pouvez vérifier le résultat en accédant à l'URL suivante http://localhost:8080/plone/portal_skins/custom/abc スクリーンショット 2020-09-04 18.06.59.png

référence

Recommended Posts

Lancez docker.plone et ajoutez un modèle personnalisé
[Raspberry Pi] Ajouter un thermomètre et un hygromètre
Lancer un serveur Web avec Python et Flask