Accueil » Zope » Forum Zope » Forum Général Zope » Passage de varaibles Zope/ZPT - python

 • Passage de varaibles Zope/ZPT - python

Document Actions
Réponses: 7   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

 • Passage de varaibles Zope/ZPT - python

Posté par thipyt le 27/08/2008 18:45
Bonjour,

J'ai bien l'impression de m'y perdre dans les passages de variables et aurait besoin d'un petit coup de main.

Depuis un script python, je cherche à créer un document plone.
Pour cela, je vais lire un document HTML, stocké dans ma ZMI sous forme de ZPT, pour ensuite l'intégrer, via un doc.setText de mon script python, à mon document Plone.
Cela fonctionne avec du code HTML simple.

Je fais donc la mise en forme HTML de ma ZPT mais j'aimerais maintenant y ajouter des éléments auquels j'accèderai en python, comme le nom de l'utilisateur, son groupe ou tout autre information récupérée dans mon script.

Pour cela, j'intègre des balises du genre:
code:
<span tal:content="python:...


Cela fonctionne lorsque je teste ma ZPT depuis la ZMI, mais après lecture dans mon script python de cette ZPT puis écriture dans mon document Plone, je perd informations. J'imagine donc que lors de la lecture (avec: maZPT.read() ), les appels python ne s'effectuent pas.

J'espère être assez clair...

S'il n'est pas possible de procéder de cette façon, ce dont j'ai l'impression, comment créer un document Plone en lisant un fichier HTML, tout en lui passant certaines variables pour "boucher des trous".


Merci d'avance pour votre aide.
  •  • Re: Passage de varaibles Zope/ZPT - python

    Posté par ychaouche le 28/08/2008 10:46
    dans ton fichier HTML, mets des %(nomVariable)s.

    Dans ton script python (c'est bien là que tu as les variables ?), tu sauvegardes tes variables dans un dico. Puis, quand tu lis le contenu de ton HTML, tu fais un contenu % dico pour remplacer les %(nomVariable)s que tu as parsemés ici et là. Le résultat de cette substitution tu le mets dans ta pt finale.

    code:
    dico={}
    dico["username"]="Paul vaillant couturier"
    dico["ceinture"]="marron"
    dico["pointure"]= "39/40"
    ...


    Puis, lis le contenu de ta PT et remplace ton formattage :

    code:
    contenu = maZPT.read()
    contenu %= dico
    doc.setText(contenu)


    Je trouve ça quand même un peu tiré par les cheveux, peut-être que si tu y réfléchis un peu plus il y a un moyen plus simple de faire ce que tu cherches à faire.

    @+
  •  • Re: Passage de varaibles Zope/ZPT - python

    Posté par thipyt le 28/08/2008 13:57
    Effectivement Ychaouche, j'ai pris un peu de recul sur le truc et c'est vrai que ce n'est pas nécessaire de faire si compliqué...

    Je crée maintenant directement une PT dans ma ZMI que j'appelle à la connexion sur Plone.
    Je suis en train d'y mettre en place un formulaire permettant de récupérer des résultats dans mon ZCatalog et j'ai une petite question sur laquelle tu pourras peut être m'aider :

    Pour afficher les brains récupérées dans mon ZCatalog, j'utilise le code suivant, avant de créer un tableau dans lequel afficher les résultats :
    code:
    <tal:block tal:define="results  here/sources/BDD/Zcat_affaire;                     
    start request/start|python:0;                     
    batch python:modules['ZTUtils'].Batch(results, size=20, start=start);


    Sur la première ligne, je récupère les résultats de mon ZCat, mais j'aimerais avoir les résultats de deux catalogues différents.
    En fait, il faudrait que "j'additionne" les résultats de deux chemins, "here/sources/BDD/Zcat_affaire" et "here/sources/BDD/Zcat_global".

    J'ai essayé différentes choses mais n'y suis pas encore parvenu...

    Je peux bien sûr répéter mon code, mais cela a pour conséquence de me faire 2 tableaux de résultats distincts, ce que j'aimerais éviter.
  •  • Re: Passage de varaibles Zope/ZPT - python

    Posté par ychaouche le 28/08/2008 14:46
    ché pas, essayes :
    code:
    resultats1 here/sources/BDD/Zcat_affaire1;
    resultats2 here/sources/BDD/Zcat_affaire2;
    resultats python:resultats1+resultats2


    Si les ZCatalog retourne une sorte de liste, alors tu peux utiliser l'opérateur + sur celles-ci.
  •  • Re: Passage de varaibles Zope/ZPT - python

    Posté par thipyt le 28/08/2008 15:33
    Effectivement, ça fonctionne !

    Mon stage terminé, je te paye un verre Ychaouche ! ;)
  •  • Re: Passage de varaibles Zope/ZPT - python

    Posté par ychaouche le 28/08/2008 15:40
    J'espère que tu finis ton stage demain parce qu'après c ramadhan et je devrais attendre 1 mois ... :p
  •  • Re: Passage de varaibles Zope/ZPT - python

    Posté par thipyt le 28/08/2008 15:45
    Arf !
    Je termine dans 3 semaines environ. Tu ne seras plus très loin de la fin ! :o)

    Merci beaucoup pour ton aide régulière en tout cas.
  •  • Re: Passage de varaibles Zope/ZPT - python

    Posté par ychaouche le 28/08/2008 15:51
    no problemo, je me suis fait pas mal aidé ici c'est normal que je fasse de même.