Oui je fais l'import de mon patch dans le fichier __init__.py de mon produit
afin que ma classe soit compil�e.
Mon arborescence :
Products/
- CPSRSS/
- RSSChannel.py
- MonProduit/
- PatchRSSChannel.py
- __init__.py -> import PatchRSSChannel
-----Message d'origine-----
De : Tarek Ziad� [mailto:[EMAIL PROTECTED]
Envoy� : jeudi 14 avril 2005 11:30
� : TERRIEN Mickael
Cc : [email protected]
Objet : Re: TR: [CPS-users-fr] Customiser un produit
TERRIEN Mickael wrote:
>C'est justement ce que je viens d'essayer de faire :
>
>--------------- patchRSSChannel.py ----------------------------
>from Products.CPSRSS import RSSChannel
>
>
>def _retrieveRSSFeed(self):
> #code modifi�
> ...
>
>RSSChannel._retrieveRSSFeed = _retrieveRSSFeed
>---------------------------------------------------------------
>
>Mais cela ne fonctionne pas. Est-ce bien �a la syntaxe ?
>
>J'ai l'impression que mon patch n'est pas pris en compte vu que c'est une
>m�thode "priv�e" que je mets � jour.
>
>
Avez vous ajout� votre fichier dans la chaine d'initialisation de zope,
cad en import dans l'__init__.py par exemple ?
>
>
>
>
>
>-----Message d'origine-----
>De : Tarek Ziad� [mailto:[EMAIL PROTECTED]
>Envoy� : jeudi 14 avril 2005 11:09
>� : TERRIEN Mickael
>Cc : [email protected]
>Objet : Re: TR: [CPS-users-fr] Customiser un produit
>
>
>[note : je me permet de Cc sur la mailing pour archivage]
>
>Bonjour,
>
>
>TERRIEN Mickael wrote:
>
>
>
>>Bonjour,
>>
>>Merci pour votre r�ponse.
>>
>>En fait, je veux centraliser toutes mes customisations (je pr�cise "non
>>commun � plusieurs utilisateurs" sinon je vous les aurais soumis) dans mon
>>produit.
>>Mon but est de faire un "produit" et tant pis si il y a ensuite des probl�mes
>>avec les mises � jour. Je veux juste que quand je r�installe CPS mes fichiers
>>ne soient pas �cras�s donc je veux qu'ils soient dans mon produit.
>>
>>J'essaie pour cela d'appliquer un patch dynamique � la classe
>>"CPSRSS/RSSChannel.py".
>>
>>C'est juste un d�tail que j'ai modifi� dans la m�thode "_retrieveRSSFeed" qui
>>m'impose de surcharger cette m�thode.
>>
>>Comment faire ?
>>
>>J'ai essay� :
>>
>>--------------- patchRSSChannel.py ----------------------------
>>#D�but
>>
>>
>>from Products.CPSRSS import RSSChannel
>
>
>>#Suite
>>//Tout le code de RSSChannel.py avec ma modification dans la m�thode
>>"_retrieveRSSFeed"
>>
>>#Patch dynamique appliqu� � RSSChannel.py
>>RSSChannel = RSSChannel
>>
>>#Fin
>>---------------------------------------------------------------
>>
>>Mais c'est toujours l'ancienne m�thode qui est prise en compte !
>>
>>Merci d'avance.
>>
>>
>>
>>
>A ok en fait le principe du patch est le suivant :
>
>fichier Foo.py :
>class Foo:
> def bar(self):
> print 'fonctionnement original'
>
>
>
>le patch fichier FooPatch.py :
>(contient juste le delta)
>
>from Foo import Foo
>
>def bar(self):
> print 'je pr�f�re ainsi'
>
>Foo.bar = bar
># a partir de ce point la classe Foo est patch�e
>
>
>
>
>
>
>
>
>>
>>-----Message d'origine-----
>>De : Tarek Ziad� [mailto:[EMAIL PROTECTED]
>>Envoy� : mercredi 13 avril 2005 13:11
>>� : TERRIEN Mickael
>>Cc : [email protected]
>>Objet : Re: TR: [CPS-users-fr] Customiser un produit
>>
>>
>>TERRIEN Mickael wrote:
>>
>>
>>
>>
>>
>>>Dans mon cas, ce sont des classes de ces produits que je modifie.
>>>
>>>Par exemple, RSSChannel.py pour le produit "CPSRSS"
>>>ou encore TypeMakerTool.py pour le produit "CPSTypeMaker"
>>>
>>>Que me conseillez-vous de faire ?
>>>
>>>J'ai l'impression que c'est de cr�er mon propre produit...
>>>
>>>
>>>
>>>
>>>
>>>
>>Ca tiens plus de l'�volution d'un produit que de la cr�ation d'un
>>nouveau produit, car vous etes surement
>>en train de customiser des parties de cps qui n'ont pas �t� pr�vues
>>pour l'instant pour etre customis�s comme les schemas, layouts etc..
>>
>>Le probl�me surviendra lorsque vous mettrez � jour les produits
>>concern�s avec des nouvelles version de CPS.
>>
>>Pouvez vous nous d�crire bri�vement les modifications que vous apportez ?
>>
>>Si ce sont des besoins de customisation communs � plusieurs
>>utilisateurs, il s'agira alors peut etre de sortir des nouveaux points
>>de customisation du produit concern� pour que vous puissiez adapter le
>>fonctionnement de mani�re p�renne.
>>
>>Tarek
>>
>>
>>
>>
>>
>>>-----Message d'origine-----
>>>De : Anahide Tchertchian [mailto:[EMAIL PROTECTED]
>>>Envoy� : mercredi 13 avril 2005 12:19
>>>� : TERRIEN Mickael
>>>Cc : [email protected]
>>>Objet : Re: [CPS-users-fr] Customiser un produit
>>>
>>>
>>>TERRIEN Mickael wrote:
>>>
>>>
>>>
>>>
>>>
>>>
>>>>Bonjour,
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>Bonjour,
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>>je voudrais conna�tre la m�thode conseill�e pour customiser un produit ?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>La m�thode conseill�e est, en effet, de cr�er son propre produit, dont
>>>l'installeur appelle l'installeur par d�faut de CPS, puis met en place
>>>les comportements personnalis�s.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>>Actuellement, je modifie directement les sources du produit pour qu'il
>>>>prenne en compte les cas sp�cifiques et g�n�riques.
>>>>Mais je voudrais centraliser ces modifications dans mon produit personnel.
>>>>
>>>>Quelle est la bonne m�thode ? :
>>>>- copier dans mon produit les classes en jeu
>>>>- installer le produit customis� (modifier le fichier install, ...)
>>>>dans mon produit
>>>>- syst�me de patch
>>>>
>>>>Est-ce-qu'une m�thode est ind�pendante des �ventuels mises � jour des
>>>>produits concern�s ?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>Je ne suis pas sure de comprendre cette question, mais peut-etre que
>>>l'explication precedente y repond : c'est l'appel du script d'update de
>>>CPS avant l'installation des specificites qui assure la mise a jour
>>>correcte du site.
>>>
>>>Pour ce qui est des methodes plus "concretes", tout depend des
>>>modifications.
>>>S'il s'agit de modifier un schema/layout par exemple, il est possible de
>>>les redefinir dans votre produit, et cette configuration ecrasera la
>>>configuration par defaut.
>>>
>>>Certaines fois,la personnalisation est l�g�rement plus compliqu�e
>>>(modifications des methodes d'un widget par exemple).
>>>
>>>D'autres fois encore, il est plus simple de monkey-patcher, voire
>>>patcher, mais en g�n�ral il vaut mieux l'�viter.
>>>
>>>N'h�sitez pas � poser des questions concernant des personnalisations que
>>>vous ne sauriez pas mettre en place.
>>>
>>>Cordialement,
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>
>
>
>
--
Tarek ZIADE, Nuxeo SARL: Zope Service Provider.
Mail: [EMAIL PROTECTED] - Tel: +33 (0)6 30 37 02 63
Nuxeo Collaborative Portal Server: http://www.nuxeo.com/cps
Gestion de contenu web / portail collaboratif / groupware / open source
_______________________________________________
cps-users-fr
Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>