Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Override de jControllerDaoCRUD

Posted by dantahoua on 10/22/2012 19:46

Bonjour! Je suis en train d'améliorer mon CMS basé sur Jelix et je veux utiliser "DataTables" pour la tabulation en Ajax...

J'aimerai overrider le controleur jControllerDaoCRUD pour modifier la méthode "index". Je veux juste en fait passer le nom du Dao et du Profile dans les variables envoyés au template. Comme ça pas besoin de me retaper tout mes controleurs qui utiliser les CrudList!

En attendant j'ai modifié le fichier de Jelix jControllerDaoCrud.class.php mais à la prochaine mise à jour de Jelix, ma modif va sauter!! :p Une idée?

Au passage j'ai modifié jCommunity pour que chaque page d'action (genre Changer le mot de passe, s'inscrire, etc) soit affichables dans une zone... Cela permet de placer des boites un peu n'importe ou sur le site à la manière de Wordpress... Mais c'est un autre sujet...

  [Opened] Override de jControllerDaoCRUD

Reply #1 Posted by laurentj on 10/23/2012 09:39

En attendant j'ai modifié le fichier de Jelix jControllerDaoCrud.class.php mais à la prochaine mise à jour de Jelix, ma modif va sauter!! tongue Une idée?

Oui. Utiliser le mécanisme d'héritage. Créer ta propre classe controleur, qui hérite de jControllerDaoCrud. Dans cette classe tu redéfinis les methodes que tu as besoin, et tes autres controlleurs héritent de ce contrôleur.

  [Opened] Override de jControllerDaoCRUD

Reply #2 Posted by dantahoua on 10/23/2012 14:59

Merci, j'y avait pensé, le seul truc c'est que je vais devoir modifier tout mes controleur pour y intégrer l'appel vers ma classe et changer l'héritage... Par exemple pour les templates c'est facile (dans var/theme/default/jelix/crud_list.tpl et hop ça override tous mes templates de crud liste), j'aurai aimé pouvoir faire pareil avec le controleur crud...

  [Opened] Override de jControllerDaoCRUD

Reply #3 Posted by laurentj on 10/29/2012 12:04

le seul truc c'est que je vais devoir modifier tout mes controleur pour y intégrer l'appel vers ma classe et changer l'héritage...

ba oui mais tu n'a rien sans rien.

j'aurai aimé pouvoir faire pareil avec le controleur crud...

oui mais alors là ce n'est plus de l'héritage. Et ce n'est pas vraiment cohérent.

En attendant j'ai modifié le fichier de Jelix jControllerDaoCrud.class.php

Et donc, tu trouves cela plus simple que de modifier tes controleurs ? Moi je ne trouve pas. Un autre dévelopeur un jour fera la mise à jour de Jelix, ça pétera tout sans qu'il n'y comprenne quoi que ce soit. TRES MAUVAISE PRATIQUE.

  [Opened] Override de jControllerDaoCRUD

Reply #4 Posted by dantahoua on 10/29/2012 14:03

Et donc, tu trouves cela plus simple que de modifier tes controleurs ? Moi je ne trouve pas. Un autre dévelopeur un jour fera la mise à jour de Jelix, ça pétera tout sans qu'il n'y comprenne quoi que ce soit. TRES MAUVAISE PRATIQUE.

Oui je sais, j'ai mis "en attendant'... De toute façon pour l'instant je dois être le seul gars à utiliser Jelix au Québec, pas trop de risque... Peut être pourrait on modifier dans une prochaine version de Jelix le controlleur Crud, j'ai juste eu à ajouter dans la méthode Index de jcontrollerdaocrud

$tpl->assign('dao',$this->dao);
        $tpl->assign('profile',$this->dbProfile);

C'est 2 petites lignes mon fait économiser un temps fou et me permettent de faire des trucs vraiment cool au niveau de l'admin juste en overidant le template crudlist.tpl... À mon avis ajouter ces deux petites lignes pourrait être bien pratique à toute personne voulant faire de l'ajax...

  [Opened] Override de jControllerDaoCRUD

Reply #5 Posted by laurentj on 10/30/2012 10:42

Tu peux proposer un vrai patch alors (ou pull request sur github) ;-)

  [Opened] Override de jControllerDaoCRUD

Reply #6 Posted by dantahoua on 10/30/2012 15:23

Yessss! Je vais m'y atteler dés que j'ai un peu de temps! Merci! :)

  [Opened] Override de jControllerDaoCRUD

Reply #7 Posted by dantahoua on 10/30/2012 16:54

Je vais poster le patch sur Trac

 
Page
  1. Override de jControllerDaoCRUD