juste une id�e :
from Products.CPSRSS import RSSChannel
c'est pas plutot :
from Products.CPSRSS.RSSChannel import RSSChannel ?
TERRIEN Mickael wrote:
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:
Ca tiens plus de l'�volution d'un produit que de la cr�ation d'un nouveau produit, car vous etes surementDans 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...
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,
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.je voudrais conna�tre la m�thode conseill�e pour customiser un produit ?
Actuellement, je modifie directement les sources du produit pour qu'il prenne en compte les cas sp�cifiques et g�n�riques.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.
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 ?
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>
