Autor wpisu: widmogrod, dodany: 11.07.2010 20:29, tagi: php, zend_framework
Niezależnie od rodzaju, wielkości i skomplikowania aplikacji internetowej można wyróżnić w niej kilka podstawowych (prawie zawsze występujących) elementów; autoryzacja, model, prezentacja danych, itp.
KontorX_DataGrid
Ten wpis chciałbym poświęcić bardzo powszechnemu elementowi – prezentacji, a dokładniej prezentacji danych tabelarycznych z j.ang. „data grid”. Notorycznie napotykamy ten element w prawie każdym panelu administracyjnym. Przybiera on różne formy w zależności od postawionych wymagań. Można wyróżnić:
Formy prezentacji danych tabelarycznych
- Podstawową – dane są prezentowane w tabeli HTML bez możliwości sortowania, filtrowania i stronicowania
- Rozszerzoną - tabela z możliwościami stronicowania i filtrowania kolumn danych
- Dedykowaną- rozwiązanie jest połączeniem w/w typów z elementami rozszeżającymi, np.:
- tabelę z możliwościami eksportowania danych tabelarycznych do różnych formatów (csv, pdf, itp…)
- spersonalizowany wygląd komórek danych w zależności od typu: data, godzina, waluta, url, grafika, ….
- możliwość edycji danych w bezpośrednio w wierszu tabeli (inline editing)
- prezentacja danych za pomocą biblioteki JavaScript (np. Ext.DataGrid i inne,… )
Rodzaje istniejących bibliotek poruszających ten problem
Natywne PHP:
- http://zfdatagrid.com/
- http://code.google.com/p/zend-framework-datagrid/
- http://code.google.com/p/kontorx/
JavaScript + PHP:
Powyższe biblioteki implementują mniej lub więcej form prezentacji danych. Każda z nich wymaga wykonania kilku „ruchów” by je skonfigurować ale czy można prościej?… Tak. Dlatego chciałbym w tym wpisie omówić bibliotekę – KontorX – jest to biblioteka, którą nieprzerwanie rozwijam od prawie 3 lat. Bibliotekę KontorX zawiera w sobie wiele elementów a jednym z nich jest KontorX_DataGrid.
Czym jest biblioteka KontorX_DataGrid
Biblioteka umożliwia elastyczne prezentowanie danych tabelarycznych w dowolny sposób i prawie w dowolnej formie. Poniżej przedstawiam główne cechy biblioteki:
- Adaptowanie danych różnych typów np. Doctrine, Zend_Db_Table, Zend_Db_Select, natywna tablica – array, …. (więcej w budowie )
- Różnorodna forma prezentacji danych. Data_Grid prezentuje dane jako czysty HTML oraz dynamiczny widok ExtJS Grid. Biblioteka pozwala również na implementacje nowych sposobów prezentacji danych np. jako plików .csv, .xls, .pdf.
- Integracja z Zend_Form.
- Zbiór gotowych rozwiązań. Biblioteka posiada już zaimplementowane elementy odpowiedzialne za filtrowanie, grupowanie i stronicowanie danych.
- Elastyczność i rozszerzalność poprzez dopisywanie plugin’ów.
Powyższy opis może nie wiele mówić dlatego zapraszam do przykładów demonstrujących, niektóre możliwości komponentu: http://kontorx.widmogrod.info/#http://kontorx.widmogrod.info//KontorX/DataGrid/example1.php
DataGrid – „Out of the box”
Jeżeli korzystasz z ZF wystarczy że pobierzesz bibliotekę z Google Code umieścisz ją w include_path aplikacji i zaimplementujesz powyższy kod w kontrolerze wybranej akcji przekazując model danych (na chwilę obecną zaimplementowałem obsługę Zend_Db_Table, Zend_Db_Select, array).
Biblioteka posiada już zaimplementowany domyślny sposób prezentacji danych więc niczym nie musisz się martwić (jedynie tabelę możesz ostylować w/g własnych upodobań )