Le 30 juin 2011 09:14, Dsls <dsls(a)morefnu.org> 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