Kolejny przykład przedstawia “zrzut” bazy danych, w postaci pliku XML. Struktura pliku XML jest w źródle. Może nam to posłużyć jako prosty sposób udostępnienia jakiś informacji, lub też przy zastosowaniu odpowiedniego obiektu jako kanał informacyjny RSS. Tak jak pisze na górze dokumentu, dalej mamy stronicowanie rekordów, lecz już bez nawigacji. Kod źródłowy jest bardzo podobny do poprzedniego:
<?php error_reporting( E_ALL ); include './DataGrid.php'; include './Draf/Xml.php'; include './dbInit.php'; include './helper.php'; // jakie pola chcemy pobrac, i jak "maja sie nazywac" $aRows = array( 'id' => 'Id', 'first_name' => 'Imię', 'surname' => 'Nazwisko', 'email' => 'E-Mail' ); // Utworzenie obiektu // 1 arg: nazwa tabeli // 2 arg: jakie pola pobieramy (jezeli pominiemy to pobierze wszytkie) $DataGrid = new DataGridXML( 'Users', $aRows ); // Na jakiej jestesmy stronie $iPage = isSet( $_GET['page'] ) ? $_GET['page'] : 1; // Ustawinie stronicowania // 1 arg: ktora strona // 2 arg: ile na strone // 3 arg: jaki jest url (generuje funkcja, z pliku helper.php) $DataGrid->Paging( $iPage, 5, UrlPaging() ); // Ustawienie sortowania // 1 arg: co ma sortowac (wg jakiego fielda) // 2 arg: jak ma sortowac desc/asc // 3 arg: jaki jest url (generuje funkcja, z pliku helper.php) $DataGrid->Sorting( 'id', 'asc', UrlSorting() ); // Ustawienie elementow - konstrukcja pliku xml // 1 arg: rodzic // 2 arg: dziecko $DataGrid->setElement( 'Users', 'User' ); // naglowek pliku xml header("Content-Type: text/xml"); echo $DataGrid->getHeader(); // Wyswietlenie naglowka echo $DataGrid->getContent(); // Wyswietlenie rekordow echo $DataGrid->getFooter(); // Wyswietlenie stopki ?>
Podsumowując, napisanie sortowania i stronicowania nie zajmuje juz tak dużo czasu jak pisanie całości za każdym razem osobno, wystarczy tylko określić co nam jest potrzebne a obiekt to wygeneruje za nas. Całe Api aplikacji jest dokładnie opisane komentarzami PHPDoc, więc nie powinno być problemów z ich rozumieniem. Więcej przykładów i dokładniejszy opis DataGrid planuje przedstawić wraz z przykładami i propozycjami dalszego rozwoju w najbliższym czasie.
Leave a reply