Nadszedł czas na prezentacja samej biblioteki. Wybrałem dwa proste przykłady, pierwszy prezentuje dane jak tabelka, a drugi jako plik XML. Przyjrzyjmy się dokładniej pierwszemu przykładowi. Na samej górze strony, posiadamy możliwości wyboru ilości danych na jednej stronie. W tym przykładzie jest to domyślnie jeden, dlatego proponuję przestawić na cztery i pojawiają nam się cztery rekordy na stronę, co jest znacznie wygodniejsze. Możemy dowolnie sortować kolumny klikając na nagłówek. Przy takim posortowaniu danych możemy spokojnie przemieszczać się miedzy stronami wyników. Po prawej zostały wygenerowane dynamicznie akcje jakie można wykonać na danym rekordzie. Cały wygląd może zostać zaprojektowany dowolnie, w systemie szablonów, w PHP albo tez w obiekcie. Kod działania pierwszego programu jest następujący:
<?php error_reporting( E_ALL ); include './DataGrid.php'; // DataGrid include './Draf/HtmlTable.php'; // Obiekt do tabelki include './dbInit.php'; // Łączenie z baza danych include './onPage.php'; // Wybór ile na strone include './helper.php'; // Funkcje wspomagające // jakie pola chcemy pobrac, i jak "maja sie nazywac" $aRows = array( 'id' => 'Id', 'first_name' => 'Imię', 'surname' => 'Nazwisko', 'email' => 'E-Mail' ); // Jakie kacje sa nam potrzebne $aAction = array( 'Edytuj' => '#Edytuj:%s', 'Usuń' => '#Delete:%s', ); // Utworzenie obiektu // 1 arg: nazwa tabeli // 2 arg: jakie pola pobieramy (jezeli pominiemy to pobierze wszytkie) $DataGrid = new DataGridHtmlTable( 'Users', $aRows ); // 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( @$_GET['sortBy'], @$_GET['sortType'], UrlSorting() ); // Ustawinie stronicowania // 1 arg: ktora strona // 2 arg: ile na strone (pobiera funkcja, z pliku helper.php) // 3 arg: jaki jest url (generuje funkcja, z pliku helper.php) $DataGrid->Paging( @$_GET['page'], onPage(), UrlPaging() ); // Ustawienia akcji // 1 arg: Akcje <tablica> // 2 arg: Po jakim polu maja rozpoznawac (id wpisu) // 3 arg: nazwa sekcji (na goze tabelki co ma pisac) $DataGrid->setAction( $aAction, 'id', 'Akcje' ); // Entery :) echo "\n\n\n\n\n\n"; echo $DataGrid->getHeader(); // Wyswietlenie naglowka echo $DataGrid->getContent(); // Wyswietlenie rekordow echo $DataGrid->getFooter(); // Wyswietlenie stopki ?>
Leave a reply