Le 30 juin 2011 09:47, Dsls <[email protected]> a écrit : > > 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? > > Oui, mais ça ne me plaît pas... une classe générique doit rester > générique. Si elle contient des spécificités de chacun de ses > héritiers, ça casse le modèle. > > On peut faire différemment : dans ton constructeur admingeneric list, tu > fais : > > public function __construct($core,$rs,$rs_count) > { > $this->core =& $core; > $this->rs =& $rs; > $this->rs_count = $rs_count; > $this->context = get_class($this); > $this->columns = array(); > $this->form_prefix = 'col_%s'; > $this->form_trigger = 'add_filter'; > > $this->html_prev = __('«prev.'); > $this->html_next = __('next»'); > > $this->setColumns(); > > $core->callBehavior('adminGenericListConstruct',$this); > > $this->setColumnsVisibility(); > } > abstract protected function setColumns() {} > > et chaque classe fille surcharge alors setColumns en ajoutant ses > propres colonnes. On garde alors le behavior générique (on peut même > l'appeler plus simplement adminListConstruct), et tout baigne... >
Certes, tu as raison. Je vais faire la modif :) -- Tomtom aka Thomas
_______________________________________________ Dev mailing list [email protected] http://ml.dotclear.org/listinfo/dev
