Ciao,
Vi ringranzio per l'interesse, anche perchè mi sprona a lavorarci un
po su.
Per quanto riguarda le tue domande:
L'oggetto datagrid nasce per essere una griglia per visualizzare i
dati ordinatamente, e questo è quello che succede se ci si limita a
dichiarare l'oggetto e settare solo l'origne dati, cioè il suo
comportamento di default è un semplice griglia che lista i dati.
Successivamente si possono inserire tutta una serie di funzionalità
come l'editing in linea(di cui vado molto fiero :) ) con
possibillità di aggiungere e di settare regexp, i filtri, il paging,
l'ordinamento, pulsanti di azione ecc...
Tutte queste funzionalità sono settabili con chiamate ai metodi
dell'oggetto:
Per esempio l'implementazione dei filtri si setta con "$newDisplay-
>SetFilters();" e di default mette tutti i campi filtrabili, ma se
si vuole disattivarne qualcuno basta chiamare un apposito metodo,
per esempio nell'esempio,"$newDisplay->UnsetFilter("telephone");",
infatti come vedi non puoi cercare per telefono.
Questo vale anche per l'ordinamento, si puo decidere se si puo
ordinare, quale è il campo di ordianmento di default("newDisplay-
>SetOrderByDefault("username");") e se disabilitare alcuni campi
("SetFieldOrderBy($col,$val)").
Le chiamate di settaggio sono piuttosto numerose...nell'esempoi ce
ne è un assaggio. Per quanto riguarda i tipi di dati piu complicati
il dg attualmente supporta campi di testo, email, link, date,
select, testo blob (nell'esempio è il campo note), testo html e
presto aggiungerò le immagini.
Per quanto ti riferivi alla possibilità di gestire i dati piu
comodamente, questo è implementato invece nell'oggetto Form, che
però non ho ancora portato su e quindi come vedi se premi sulla
icona della squadra (che appare per la chiamata $newDisplay-
>WorkWithFormClass("fr.php",1);) avrai pagina non trovata.
I tre oggetti sono fatti per funzionare da soli, ma con apposite
chiamate si intefacciano e lavorano insieme.
Datagrid e Form sono già funzionanti e stabili anche se voglio
dargli qualche ritoccata, invece Gallery manca ancora di un paio di
cosette...dopo aver fatto le cose piu divertenti mi sono un po
distratto :)
Se avete altri consigli/giudizi/commenti mi fate un favore, così
magari trovo qualche cosa altra da aggiungere che fa comodo avere...
Ciao
--- In php-italia@yahoogroups.com, "Felice Ostuni"
<felice.ostuni@g...> ha scritto:
>
> Ciao,
> Sviluppare a componenti rientra nella mia fisolofia di sviluppo da
un po' di tempo.
> Per questo avevo piacere commentare le tue classi e a sottoporti
le mie.
>
> Nella realizzazione di strumenti CRUD, ormai ho raggiunto il
mio "optimum" usando 3 classi:
>
> - una che genera filtri (tipicamente una where)
> - una che genera data-grid (ordinabili, paginati), potendo usare
una query preparata da un filtro
> - una che gestisce in autonomia l'editing sul singolo record,
potendo collegarla al data-grid.
>
> Ho sempre avuto il rimpianto di poter anche usare direttamente il
data-grid per l'editing..
> magari riesco a prendere l'ispirazione dal modo in cui hai gestito
tu questa cosa.
>
>
> Una critica alle mie:
> - Nonostante la sintassi usata nelle mie classi sia concisa,
spesso mi trovo a ridefinire o comunque a scrivere codice
ridondante..
> ad esempio in un "filtro" quasi sicuramente definisco un campo
che ridefiniro' sia nella "griglia" che nella classe che
gestisce "l'editing".
>
> Una donanda sulle tue:
> - i form li fà solo in quel modo? se ci fosse la necessità di
gestire campi piu' complessi o comunque molti piu' campi non sarebbe
meglio avere un form:
> label: campo
> label: campo
>
> Una critica sulle tue:
> - forse è il caso di limitare le colonne ordinabili.. dopotutto
l'ordinamento ha senso solo su alcune cose.
> - così pure la possibilità di filtrare..
>
>
> I riferimenti della mia attuale libreria (non è standalone,
richiede e sfrutta CodeIgniter un framework MVC che avevo già
segnalato al gruppo) sono questi:
> http://www.rapyd.com/rapydsamples/crud
>
> La vecchia libreria standalone.. ma proprio vecchia è..
> http://www.rapyd.com/dg_de.php
>
>
> Condividere fà bene alla salute,
>
> Felice
>
> ----- Original Message -----
> From: voglio_un_id_decente
> To: php-italia@yahoogroups.com
> Sent: Tuesday, August 01, 2006 9:06 PM
> Subject: [php-italia] Datagrid Class
>
>
> Ciao a tutti, (che bell'inizio..)
> Non sono molto pratico di gruppi di discussione quindi cercherò
di
> essere stringato..
> Mi sono iscritto per poter aver il vostro parere su tre
oggettini
> che ho sviluppato qualche anno fa per poter velocizzare i
numerosi
> siti web che mi commissinavano...poi però da un po' di tempo la
> richiesta sembra essersi spostata di nuovo su programmi Win e
quindi
> non sono mai riuscito a terminarli...ora volevo finirli sia per
> poterli finalmente usare, sia per poterli mettere su PHP Classes.
>
> I tre oggetti si chiamano DataGrid, che si auto esplica, Form,
un
> generatore di form per editare i dati piu dettagliatmanete, e
una
> Gallery, editor di gallery.
> Premetto che funizionano solo per Explorer...anche perchè non ho
mai
> scritto js per Mozilla e quindi ci lavorerò in un secondo
momento...
> Comunque se deste un'occhiata al DataGrid (quello che mi piace
di
> piu) potreste darmi un commento, solo positivi ovviamente :),
> suggerimenti o cose da implementare...
> Anche se 'ogni scarrafone è bello a mamma sua' devo dire che non
mi
> sembra male...e per dire la verità cercando non ne ho visto
nessun
> gratis (quelli a pago li ho scartati) veramente valido, l'unico
è
> PHP:DataGrid ma non mi sembra un granchè fatta eccezzione di
alcune
> cose...
>
> Potete vedere il DataGrid su www.montefili.it/dev/dg.php
> Ovviamente questo è un esempio...ci sono solo chiamate ad alcuni
> metodi..inoltre ho portato su solo il Dg...in un altro momento
se vi
> sembra carino posso su mettere il resto
> Fatemi sapere
>
> Ciao
>