Création Espace de travail d'un user [How-To]
Procédure pour remplacer le document par défaut INDEX_HTML d'un User par un DTMLDocument lors de la création d'un espace de travail.
Plan How's-To
1. Principe de Création
2. Modification DTMLDocument - Création de Modele
3. Notre patch !!
Introduction.
Le but de la procédure est de crééer un DTMLDocument et non un Document (Nommé index_html) ayant comme modéle celui se trouvant dans un répertoire de modéle.
Ainsi l'administrateur pourra personnalisé le modele via la ZMI et non via le source du serveur.
1. Principe de Création d'un espace de travail
Lors de la validation d'un user, on fait appel à la fonction addMember(...)
Celle-ci fait appel ensuite à createMemberarea() se trouvant dans CMFDefault/MembershipTools.py
On créé un répertoire de travail pour l'utilisateur avec son Id, Title et aussi un Doucment par défaut jouant le role de page d'accueil (index_html)
Le problème : impossible de récuperer un modele depuis le serveur Zope et non d'un fichier local. celui-ci est en effet rentrer en dur dans le source du MembershipTools.py. Cela ne facilite pas la personnalisation et oblige à redémarrer le serveur à chaque changement.
2. Modification DTMLDocument - Création de Modele
Tous d'abord vous allez récuperer le Product de kslee;
http://www.zope.org/Members/kslee/DTML_Repository_Patch
Il propose de rajouter au produit DTML Document et DTML Method, la possibilite de créér un repertoire de Modele se trouvant non pas sur le disque local (file='') mais dans un repertoire du site (StDTMLRepo).
L'installation de DTML Document n'a pas posé de probleme. J'ai juste remplace addForm(documentAdd,...) par addForm(dtml/documentAdd,..), je voulais conserver l'architecture avec mes DTML dans le repertoire dtml.
Par contre la procédure pour DTML Method à générér des conflits; je n'ai donc pas installer cette partie qui est indépendante de mon DTMLDocument
.
Voila maintenant, nous avons la possiblité de rajouter des modéles dans ce repertoire !! Pour ma part, je l'ai mis à rootfolder; je vous invite à aller voir la documentation de kslee, pour les autres possibilité.
3. Notre Patch
Dans notre fichier CMFDefault/MembershipTools.py
from OFS import DTMLDocument
Il suffit ensuite de rajouter cette ligne juste avant Document.add..... par exemple :
DTMLDocument.addDTMLDocument( f, 'index_html_test' , title='index_test', file='', REQUEST=None, submit = None, StDTMLRepo='modele_index_html')
Dans mon repertoire StDTMLRepo se trouve "mon modele_index_html" servant de page d'accueil par défaut pour mes membres.
Conclusion
-> Nous avons maintenant la possibilité de créér des modeles de DTML Document
-> Nous avons une page index_html par défaut pour nos membres faciliment personnalisable sans avoir à sortir de notre ZMI.
Je tiens à remercier particulierement gmat qui m'a vraiment assister pour réaliser cette transformation de ma procédure de création d'un espace de membre par défaut.
n'hésiter pas à m'envoyer vos remarques pour toutes corrections ou complément
florent.carlier@insa-rennes.fr
1. Principe de Création
2. Modification DTMLDocument - Création de Modele
3. Notre patch !!
Introduction.
Le but de la procédure est de crééer un DTMLDocument et non un Document (Nommé index_html) ayant comme modéle celui se trouvant dans un répertoire de modéle.
Ainsi l'administrateur pourra personnalisé le modele via la ZMI et non via le source du serveur.
1. Principe de Création d'un espace de travail
Lors de la validation d'un user, on fait appel à la fonction addMember(...)
Celle-ci fait appel ensuite à createMemberarea() se trouvant dans CMFDefault/MembershipTools.py
On créé un répertoire de travail pour l'utilisateur avec son Id, Title et aussi un Doucment par défaut jouant le role de page d'accueil (index_html)
Le problème : impossible de récuperer un modele depuis le serveur Zope et non d'un fichier local. celui-ci est en effet rentrer en dur dans le source du MembershipTools.py. Cela ne facilite pas la personnalisation et oblige à redémarrer le serveur à chaque changement.
2. Modification DTMLDocument - Création de Modele
Tous d'abord vous allez récuperer le Product de kslee;
http://www.zope.org/Members/kslee/DTML_Repository_Patch
Il propose de rajouter au produit DTML Document et DTML Method, la possibilite de créér un repertoire de Modele se trouvant non pas sur le disque local (file='') mais dans un repertoire du site (StDTMLRepo).
L'installation de DTML Document n'a pas posé de probleme. J'ai juste remplace addForm(documentAdd,...) par addForm(dtml/documentAdd,..), je voulais conserver l'architecture avec mes DTML dans le repertoire dtml.
Par contre la procédure pour DTML Method à générér des conflits; je n'ai donc pas installer cette partie qui est indépendante de mon DTMLDocument
.
Voila maintenant, nous avons la possiblité de rajouter des modéles dans ce repertoire !! Pour ma part, je l'ai mis à rootfolder; je vous invite à aller voir la documentation de kslee, pour les autres possibilité.
3. Notre Patch
Dans notre fichier CMFDefault/MembershipTools.py
from OFS import DTMLDocument
Il suffit ensuite de rajouter cette ligne juste avant Document.add..... par exemple :
DTMLDocument.addDTMLDocument( f, 'index_html_test' , title='index_test', file='', REQUEST=None, submit = None, StDTMLRepo='modele_index_html')
Dans mon repertoire StDTMLRepo se trouve "mon modele_index_html" servant de page d'accueil par défaut pour mes membres.
Conclusion
-> Nous avons maintenant la possibilité de créér des modeles de DTML Document
-> Nous avons une page index_html par défaut pour nos membres faciliment personnalisable sans avoir à sortir de notre ZMI.
Je tiens à remercier particulierement gmat qui m'a vraiment assister pour réaliser cette transformation de ma procédure de création d'un espace de membre par défaut.
n'hésiter pas à m'envoyer vos remarques pour toutes corrections ou complément
florent.carlier@insa-rennes.fr

Log in
PloneArticle
Utiliser le Plone Membership Tool