Jump to content

Extension de classes pour l'administration


Recommended Posts

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

  • 8 months later...

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

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

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ées

Pour 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

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... :-p

Merci 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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...