DevNet Posted July 26, 2010 Share Posted July 26, 2010 Bonjour,Quelles sont les possibilités et les limites de développement dans un module afin d'améliorer les méthodes des classes existantes du noyau (version du noyau en vigueur) ?Bien cordialement,A+ Link to comment Share on other sites More sharing options...
DevNet Posted July 29, 2010 Author Share Posted July 29, 2010 Arf ! Pas de réponse, bon je reformule la question différemment.Par quel moyen peut-on sur une simple intégration / installation de module, ajouter de nouvelles fonctionnalités dans les classes existantes du noyau ?J'ai vu que certains utilisaient la méthode "passage en force", en remplaçant au moment de l'installation certaines classes de /classes ou /admin/tabs directement par un simple copié coller pendant le traitement du script d'installation. Mais cette solution n'est pas évolutif et autonome.Ma demande serai un moyen plus propre, afin d'utiliser les classes existantes de la version en vigueur, et d'y ajouter de nouvelles méthodes, voir aussi de les surchargés pour les modifier.Ceci permettrait de changer ou d'ajouter à souhait des traitements dans les pages d'administration déjà en place. Et de ne pas se contenter à chaque de créer de nouveaux modules / onglets.Quelqu'un aurait-il une expérience dans le domaine ?Bien cordialement,A+ Link to comment Share on other sites More sharing options...
besky Posted April 13, 2011 Share Posted April 13, 2011 Bonjour, Je suis aussi à la recherche d'une méthode pour surcharger ou modifier les classes du cœur de PS avec un module. Et aussi pour utiliser un clone d'une tab de admin/tab, à savoir s'il faut copier/coller le clone dans admin/tab ou bien s'il existe un moyen d'envoyer PS charger le fichier directement dans le dossier du module.Quelqu'un a la solution s'il vous plais ? Link to comment Share on other sites More sharing options...
besky Posted April 14, 2011 Share Posted April 14, 2011 Bonjour,Aller s'il vous plais... Vraiment personne ici pour me donner un petit coup de main ?Merci quand même ! Link to comment Share on other sites More sharing options...
besky Posted April 14, 2011 Share Posted April 14, 2011 Aller messieurs et mesdames, j'offre 200€ au premier qui me trouve une solution viable ! Link to comment Share on other sites More sharing options...
besky Posted April 14, 2011 Share Posted April 14, 2011 Bon j’ai trouvé une piste pour copier/coller le fichier de mon module vers admin/tab: if(!file_exists('../module/monmodule/AdminAttributesGroupsMonmodule.php')) copy('../modules/monmodule/AdminAttributesGroupsMonmodule.php', '../admin/tab/AdminAttributesGroupsMonmodule.php'); Qu’en pensez-vous ?Cordialement.ps: je crois que je vais me devoir 200€ :-p Link to comment Share on other sites More sharing options...
Broceliande Posted April 14, 2011 Share Posted April 14, 2011 Bonjour,Quelles sont les possibilités et les limites de développement dans un module afin d'améliorer les méthodes des classes existantes du noyau (version du noyau en vigueur) ?Bien cordialement,A+ Salut DevNet,Ca c'est LA question!Comme passage en force j'ai vu aussi des regex ... pas beaucoup mieux ...Si on parle de la 1.4 , une méthode assez propre pourrait être de surcharger la classe AdminTab , afin d'y ajouter ça et là quelques hooks génériques bien sentis.En surchargeant toutes les méthodes de AdminTab, on peut envisager ce type de schéma :public function classmethod($params){ Module::hookExec('beforeclassmethod', $otherparams)); Parent::classmethod($params); Module::hookExec('afterclassmethod', $otherparams)); } Ce type de solution a d'ailleurs été suggérée et abordée dans un post par un autre membre mais zut je trouve pas le post...Un module peut placer l'override à l'install et créer les hooks nécessaires.. Les mises à jours ne seraient pas affectéesPour la 1.3 on devrait remplacer le fichier de classe , je ne vois pas autrement si on veut exécuter du code librement.C'est sans doute pas ce genre de réponse que tu attends mais je n'ai pas LA solution ultime, qui d'ailleurs me ravirait tout autant. En attendant plus de flexibilité dans le BO type override chargées en auto, je ne sais pas si on n'est pas cantonnés à la bidouille.Mais bon il y a des degrés de propreté selon les méthodes utilisées non ? Link to comment Share on other sites More sharing options...
besky Posted April 14, 2011 Share Posted April 14, 2011 Bonsoir Broceliande,Merci de ta réponse. En ce qui concerne la 1.4 j'ai abandonné pour l'instant car même si effectivement un bon nombre de fonctions me seraient surement utiles, je compte attendre une version un chouillat plus stable, ceci dit la surcharge par "override" a l'air très intéressante.Donc avec la 1.3 comme tu dis pas moyen de faire autrement que de remplacer le fichier d'origine par un clone, c'est dommage, m'enfin on s'en contentera.Donc je vais faire appel à la même méthode que pour les tab sauf que la je vais remplacer le fichier d'origine par le miens et je prévoirais tout de même une sauvegarde du fichier et de le replacer si jamais la personne désinstalle le module. Par contre en cas de mise à jour de PS c'est le drame... :-pMerci bien pour ces éclaircissements. Pendant que tu y es si ça ne te dérange pas trop pourrais tu aller voir par la me dire ce que tu en pense stp ? http://www.prestashop.com/forums/viewthread/19054/P60/modules_tiers/systeme_de_quantite_global/Merci Link to comment Share on other sites More sharing options...
Julien Breux Posted April 17, 2011 Share Posted April 17, 2011 Il est complétement inutile d'aller copier / coller un onglet... Il suffit dans le modèle de données de modifier le champs module (null par défaut) en y inscrivant le nom du module... voilà tout.De même que si vous voulez remplacer un onglet, il vous suffit de mettre à jour le champs "module"... encore une fois, rien de plus simple et rien de plus propre ! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now