Le 30 juin 2011 09:14, Dsls <[email protected]> a écrit :

> > J'en profite pour faire la même chose. J'ai ajouté un behavior afin que
> les
> > plugins puisse ajouter des colonnes dans les listes admin.
> > Je l'ai nommé adminGenericListConstruct. Si jamais ça ne vous plait
> > pas/voyez mieux, n'hésitez pas ;)
>
> Hmmm ... je peux faire mon chieur ?
>

Si tu veux vraiment le faire, faut pas poser la question ;)


> On a une classe adminGenericList, dont héritent les classes
> adminPostList, adminPostMiniList, adminCommentList, ...
>
> Pourquoi donc y a-t-il des ajouts spécifiques à toutes les classes
> filles dans la classe adminGenericList ? Je trouverais ça plus propre
> de mettre ça dans les constructeurs des classes filles, et avoir une
> classe adminGenericList vraiment indépendante. Cela rendrait inutile
> le behavior adminGenericListConstruct.
>

C'était pour factoriser le code au maximum. La classe adminGenericList
s'occupe de toute la mécanique interne ainsi que l'affichage général.

En l'état;
- Si tu veux ajouter une liste, il suffit de créer un classe héritant
de adminGenericList et de créer simplement des fonctions protected pour
chaque colonne affichée.
- Si tu veux ajouter une colonne à une liste existante, il suffit de la
rajouter au bon contexte via le behavior adminGenericListConstruct et un
appel du
type: $this->addColumn(<context>,<id_colonne>,<titre_colonne>,<callback>);

Si on faisait comme tu le préconises, cela veux dire que lorsque quelqu'un
crée une nouvelle liste, il devra y placer son constructeur ainsi que ne pas
oublier de créer son behavior. D'une, ça fait plus de code pour le dev (bon
c'est une ligne je sais :P) et de deux, il peux très bien oublier de le
faire et ainsi priver d'autres plugins de rajouter leurs propres colonnes.

Tu vois l'idée?


-- 
Tomtom aka Thomas
_______________________________________________
Dev mailing list
[email protected]
http://ml.dotclear.org/listinfo/dev

Répondre à