IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zope Python Discussion :

[Zope/Python] Acquerir un objet


Sujet :

Zope Python

  1. #1
    Membre habitué Avatar de HexChit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut [Zope/Python] Acquerir un objet
    J'ai une fonction qui me sert a generer un menu dynamiquement.

    En fait, j'ai 2 menu : un en haut et un a gauche. Ce que je voudrais, c'est generer dynamiquement le menu de gauche en fonction du menu du haut.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    req = context.REQUEST
    path = context.script.une_fonction_qui_me_renvoie_un_dico()
    obj_str = path[req['view']].getObject()  # je sais, ça marche pas mais req['view'] est censé me 
    renvoyer l'id du folder ou je veux faire un objectValues et
     path[req['view']] est censé me renvoyer le chemin complet de ce 
    folder mais comme c'est un string...
    obj = obj_str.objectValues('Folder')
    Donc ce que je voudrai faire, c'est obtenir tout les folder contenu dans un autre en fonction de la page courante (le req['view'] en faite, qui me donne son id et le path de cet objet obtenu par path[req['view']])

  2. #2
    Membre habitué Avatar de HexChit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    aaahhh peut etre que je pourrai faire un dico sur des objet... je n'y avais pas pensé
    Je vais de ce pas le tester

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 89
    Points : 107
    Points
    107
    Par défaut
    euh j'ai lu en diagonale mais tu souhaites récupérer diffrents objets suivant le contexte je crois.

    imaginons ton site:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    /
       dossier1/
     
       dossier2/
                   dossier21/
     
                   dossier22/
    bref tu veux que si tu donnes dossier2 ça te retournes dossier21 et dossier22 dans ton menu parce que tu es sur dossier2 c'est bien ça ?
    et le tout dans un script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ma_list=context.restrictedTraverse(adr).objectValues()
    # ou adr est une string qui vaut "dossier2"
    testes ça
    @++

  4. #4
    Membre habitué Avatar de HexChit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    Merci ça marche nickel .
    Mais dis moi dans quel doc tu as trouvé cette fonction? Je ne me souviens pas l'avoir aperçue dans ZopeBook. Est ce dans la doc Python? Parce que la fonction restrictedTraverse() est propre à Zope non?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 89
    Points : 107
    Points
    107
    Par défaut
    Citation Envoyé par HexChit
    Merci ça marche nickel .
    Mais dis moi dans quel doc tu as trouvé cette fonction? Je ne me souviens pas l'avoir aperçue dans ZopeBook. Est ce dans la doc Python? Parce que la fonction restrictedTraverse() est propre à Zope non?

    euh ben je l'ai lu quelque part mais c'était y 'a longtemps :-)

    certainement dans le livre "Zope2" de chez eyrolles.

    et oui c'est une méthode de Zope.
    la classe Traverse je crois.
    enfin il faut regarder dans l'api de Zope

  6. #6
    Membre habitué Avatar de HexChit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    Ok merci. J'ai le bouquin Zope de Olivier Deckmyn mais il est trop gros pour que je l'emmene tout les jours au travail

  7. #7
    Membre habitué Avatar de HexChit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    Hum j'aurai une autre question en rapport avec les objets...
    Lorsque j'obtient l'objet voulu, comment pourrais je afficher le contenu?
    Sachant que mon script python retourne l'objet tout simplement pour qu'il soit affiché.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    path = context.script.getCurrentView()  # me retourne le physycal path de l'objet (c'est un folder) + '/index_html'
    data = context.restrictedTraverse(path) # est censé me retourner l'objet lui même (ca marche j'ai testé en affichant son id)
    return data # c'est la que je voudrais avoir le contenu de l'objet
    Merci pour vos réponses

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 89
    Points : 107
    Points
    107
    Par défaut
    Ben si tu veux afficher la page de l'objet :
    url_objet/view

    Sinon dans une ZPT:
    pour les données :
    le titre de ton objet par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tal:content="here/title"
    Mais je n'ai peut être pas bien compris ?

    @++

  9. #9
    Membre habitué Avatar de HexChit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    En fait je voudrais dans un script python, retourner le contenu d'un objet.
    Je m'explique :

    Mon site s'articule autour d'un index_html, les visiteur ne voit que la racine du site dans l'url. En fait mon script python va chercher dans des repertoire le contenu de la page (du ZPT) pour l'afficher. Donc ce que je voudrais c'est avoir le contenu de mon objet pour le retourner a l'affichage. Mais seulemt en python, c'est a dire que je fait un return objet, et cela me donne le contenu de cette objet...

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 89
    Points : 107
    Points
    107
    Par défaut utilise les macros !
    Ben dans ce cas utilises les macros c'est fait pour ça :-)

    Dans ta ZPT index_html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <metal:block use-macro="here/zpt_mes_macro/macro_render_object" />
    Dans ta ZPT zpt_mes_macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <div metal:define-macro="macro_render_object"
          tal:define="obj python:monscript_qui_retourne_obj "
          tal:omit-tag="">
    <h1 tal:content="obj/title">le titre de mon doc</h1>
    <etc.....>
    </div>

  11. #11
    Membre habitué Avatar de HexChit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    OK Merci, j'etais un peu perdu dans la conception de mon site

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme d'affichage sur un zope/python
    Par malmzi2007 dans le forum Zope
    Réponses: 2
    Dernier message: 04/09/2006, 16h07
  2. comment créer un mail avec Zope / Python ?
    Par malmzi2007 dans le forum Zope
    Réponses: 3
    Dernier message: 12/07/2006, 19h19
  3. zope python, apache php
    Par bbmt dans le forum Zope
    Réponses: 1
    Dernier message: 24/05/2006, 18h03
  4. Moteur de recherche interne avec zope/python
    Par tunix dans le forum Zope
    Réponses: 3
    Dernier message: 01/05/2006, 15h45
  5. Réponses: 4
    Dernier message: 15/09/2004, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo